From 71b6a2c41c24d62fb4b195893b63fc7e1e158adb Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Thu, 21 Sep 2000 21:43:20 +0000 Subject: [PATCH] Better high-level server API. --- include/yaz-z-server.h | 20 +- src/yaz-pdu-assoc.cpp | 23 +- src/yaz-server.cpp | 1513 +++++++++++++++++++++++++++++++++++++++++++++++- src/yaz-z-server.cpp | 302 +++++----- 4 files changed, 1692 insertions(+), 166 deletions(-) diff --git a/include/yaz-z-server.h b/include/yaz-z-server.h index 53502ae..65d620e 100644 --- a/include/yaz-z-server.h +++ b/include/yaz-z-server.h @@ -2,7 +2,7 @@ * Copyright (c) 2000, Index Data. * See the file LICENSE for details. * - * $Id: yaz-z-server.h,v 1.2 2000-09-12 12:09:53 adam Exp $ + * $Id: yaz-z-server.h,v 1.3 2000-09-21 21:43:20 adam Exp $ */ #include @@ -22,15 +22,25 @@ public: int *format, Z_RecordComposition *comp, Z_NamePlusRecord *namePlusRecord, - Z_DefaultDiagFormat *diagnostics) = 0; + Z_Records *diagnostics) = 0; + Z_Records *Yaz_Z_Server::create_nonSurrogateDiagnostics ( + int error, const char *addinfo); + void create_databaseRecord (Z_NamePlusRecord *rec, + const char *dbname, int format, + const void *buf, int len); + void create_surrogateDiagnostics(Z_NamePlusRecord *rec, + const char *dbname, int error, + char *const addinfo); + private: Z_Records *pack_records (const char *resultSetName, - int start, int *num, + int start, int num, Z_RecordComposition *comp, int *next, int *pres, int *oid); - void piggyback (Z_SearchRequest *searchRequest, - Z_SearchResponse *searchResponse); + void fetch_via_piggyback (Z_SearchRequest *searchRequest, + Z_SearchResponse *searchResponse); + void fetch_via_present (Z_PresentRequest *req, Z_PresentResponse *res); int m_preferredMessageSize; int m_maximumRecordSize; }; diff --git a/src/yaz-pdu-assoc.cpp b/src/yaz-pdu-assoc.cpp index 084c4e9..dd1235a 100644 --- a/src/yaz-pdu-assoc.cpp +++ b/src/yaz-pdu-assoc.cpp @@ -3,7 +3,10 @@ * See the file LICENSE for details. * * $Log: yaz-pdu-assoc.cpp,v $ - * Revision 1.14 2000-09-12 12:09:53 adam + * Revision 1.15 2000-09-21 21:43:20 adam + * Better high-level server API. + * + * Revision 1.14 2000/09/12 12:09:53 adam * More work on high-level server. * * Revision 1.13 2000/09/08 10:23:42 adam @@ -138,18 +141,8 @@ void Yaz_PDU_Assoc::socketNotify(int event) int fd = cs_fileno(new_line); logf (m_log, "accept ok fd = %d", fd); cs_fileno(new_line) = -1; - cs_close (new_line); /* potential problem ... */ -#if 1 + cs_close (new_line); childNotify(fd); -#else - Yaz_PDU_Assoc *assoc = new Yaz_PDU_Assoc (m_socketObservable); - assoc->m_parent = this; - assoc->m_next = m_children; - m_children = assoc; - - assoc->m_PDU_Observer = m_PDU_Observer->clone(assoc); - socket(fd); -#endif } } else if (m_state == Ready) @@ -402,13 +395,13 @@ void Yaz_PDU_Assoc::socket(IYaz_PDU_Observer *observer, int fd) // Single-threaded... Only useful for non-blocking handlers void Yaz_PDU_Assoc::childNotify(int fd) { - /// Clone PDU Observable (keep socket manager) + // Clone PDU Observable (keep socket manager) IYaz_PDU_Observable *new_observable = clone(); - /// Clone PDU Observer + // Clone PDU Observer IYaz_PDU_Observer *observer = m_PDU_Observer->clone(new_observable); - /// Attach new socket to it + // Attach new socket to it new_observable->socket(observer, fd); } #else diff --git a/src/yaz-server.cpp b/src/yaz-server.cpp index 28bc965..a8e628b 100644 --- a/src/yaz-server.cpp +++ b/src/yaz-server.cpp @@ -3,7 +3,10 @@ * See the file LICENSE for details. * * $Log: yaz-server.cpp,v $ - * Revision 1.11 2000-09-12 16:23:49 adam + * Revision 1.12 2000-09-21 21:43:20 adam + * Better high-level server API. + * + * Revision 1.11 2000/09/12 16:23:49 adam * Updated server example. * * Revision 1.10 2000/09/12 16:04:17 adam @@ -60,8 +63,8 @@ public: int position, int *format, Z_RecordComposition *comp, - Z_NamePlusRecord *namePlusRecord, - Z_DefaultDiagFormat *diagnostics); + Z_NamePlusRecord *namePlusRecord, + Z_Records *records); IYaz_PDU_Observer* clone(IYaz_PDU_Observable *the_PDU_Observable); void failNotify(); void timeoutNotify(); @@ -70,6 +73,1479 @@ private: int m_no; }; + +static char *marc_records[] = { +{ + "\x30\x30\x33\x36\x36\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x31\x36" + "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x37\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x34\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x31\x37\x39\x30\x34\x30\x30\x30\x31\x33\x30\x30\x30\x37\x35" + "\x30\x35\x30\x30\x30\x31\x32\x30\x30\x30\x38\x38\x31\x30\x30\x30" + "\x30\x31\x37\x30\x30\x31\x30\x30\x32\x34\x35\x30\x30\x33\x30\x30" + "\x30\x31\x31\x37\x32\x36\x30\x30\x30\x31\x32\x30\x30\x31\x34\x37" + "\x32\x36\x33\x30\x30\x30\x39\x30\x30\x31\x35\x39\x33\x30\x30\x30" + "\x30\x31\x31\x30\x30\x31\x36\x38\x1E\x20\x20\x20\x31\x31\x32\x32" + "\x34\x34\x36\x36\x20\x1E\x44\x4C\x43\x1E\x30\x30\x30\x30\x30\x30" + "\x30\x30\x30\x30\x30\x30\x30\x30\x2E\x30\x1E\x39\x31\x30\x37\x31" + "\x30\x63\x31\x39\x39\x31\x30\x37\x30\x31\x6E\x6A\x75\x20\x20\x20" + "\x20\x20\x20\x20\x20\x20\x20\x20\x30\x30\x30\x31\x30\x20\x65\x6E" + "\x67\x20\x20\x1E\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43" + "\x1E\x30\x30\x1F\x61\x31\x32\x33\x2D\x78\x79\x7A\x1E\x31\x30\x1F" + "\x61\x4A\x61\x63\x6B\x20\x43\x6F\x6C\x6C\x69\x6E\x73\x1E\x31\x30" + "\x1F\x61\x48\x6F\x77\x20\x74\x6F\x20\x70\x72\x6F\x67\x72\x61\x6D" + "\x20\x61\x20\x63\x6F\x6D\x70\x75\x74\x65\x72\x1E\x31\x20\x1F\x61" + "\x50\x65\x6E\x67\x75\x69\x6E\x1E\x20\x20\x1F\x61\x38\x37\x31\x30" + "\x1E\x20\x20\x1F\x61\x70\x2E\x20\x63\x6D\x2E\x1E\x20\x20\x1F\x61" + "\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x36\x20\x1E\x1D" +},{ + "\x30\x30\x33\x36\x36\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x31\x36" + "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x37\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x34\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x31\x37\x39\x30\x34\x30\x30\x30\x31\x33\x30\x30\x30\x37\x35" + "\x30\x35\x30\x30\x30\x31\x32\x30\x30\x30\x38\x38\x31\x30\x30\x30" + "\x30\x31\x37\x30\x30\x31\x30\x30\x32\x34\x35\x30\x30\x33\x30\x30" + "\x30\x31\x31\x37\x32\x36\x30\x30\x30\x31\x32\x30\x30\x31\x34\x37" + "\x32\x36\x33\x30\x30\x30\x39\x30\x30\x31\x35\x39\x33\x30\x30\x30" + "\x30\x31\x31\x30\x30\x31\x36\x38\x1E\x20\x20\x20\x31\x31\x32\x32" + "\x34\x34\x36\x37\x20\x1E\x44\x4C\x43\x1E\x30\x30\x30\x30\x30\x30" + "\x30\x30\x30\x30\x30\x30\x30\x30\x2E\x30\x1E\x39\x31\x30\x37\x31" + "\x30\x63\x31\x39\x39\x31\x30\x37\x30\x31\x6E\x6A\x75\x20\x20\x20" + "\x20\x20\x20\x20\x20\x20\x20\x20\x30\x30\x30\x31\x30\x20\x65\x6E" + "\x67\x20\x20\x1E\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43" + "\x1E\x30\x30\x1F\x61\x31\x32\x33\x2D\x78\x79\x7A\x1E\x31\x30\x1F" + "\x61\x4A\x61\x63\x6B\x20\x43\x6F\x6C\x6C\x69\x6E\x73\x1E\x31\x30" + "\x1F\x61\x48\x6F\x77\x20\x74\x6F\x20\x70\x72\x6F\x67\x72\x61\x6D" + "\x20\x61\x20\x63\x6F\x6D\x70\x75\x74\x65\x72\x1E\x31\x20\x1F\x61" + "\x50\x65\x6E\x67\x75\x69\x6E\x1E\x20\x20\x1F\x61\x38\x37\x31\x30" + "\x1E\x20\x20\x1F\x61\x70\x2E\x20\x63\x6D\x2E\x1E\x20\x20\x1F\x61" + "\x20\x20\x20\x31\x31\x32\x32\x34\x34\x36\x37\x20\x1E\x1D" +},{ + "\x30\x31\x33\x36\x39\x63\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x36" + "\x35\x20\x69\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x38\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x38" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x32\x32\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x39\x30\x31\x30\x30\x30\x32\x32\x30" + "\x31\x30\x38\x31\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x38\x30" + "\x30\x35\x30\x30\x30\x32\x32\x30\x30\x30\x39\x38\x30\x38\x32\x30" + "\x30\x32\x31\x30\x30\x31\x32\x30\x31\x31\x31\x30\x31\x32\x31\x30" + "\x30\x31\x34\x31\x32\x34\x35\x30\x33\x34\x37\x30\x30\x32\x36\x32" + "\x32\x36\x30\x30\x30\x35\x34\x30\x30\x36\x30\x39\x33\x30\x30\x30" + "\x30\x33\x30\x30\x30\x36\x36\x33\x35\x30\x34\x30\x30\x35\x31\x30" + "\x30\x36\x39\x33\x36\x35\x30\x30\x30\x35\x36\x30\x30\x37\x34\x34" + "\x36\x35\x30\x30\x30\x33\x39\x30\x30\x38\x30\x30\x36\x35\x30\x30" + "\x30\x36\x32\x30\x30\x38\x33\x39\x37\x30\x30\x30\x30\x32\x33\x30" + "\x30\x39\x30\x31\x37\x30\x30\x30\x30\x32\x30\x30\x30\x39\x32\x34" + "\x37\x31\x30\x30\x30\x37\x31\x30\x30\x39\x34\x34\x37\x31\x30\x30" + "\x30\x36\x36\x30\x31\x30\x31\x35\x1E\x20\x20\x20\x37\x33\x30\x39" + "\x30\x39\x32\x34\x20\x2F\x2F\x72\x38\x32\x1E\x44\x4C\x43\x1E\x31" + "\x39\x38\x32\x30\x35\x32\x34\x30\x30\x30\x30\x30\x30\x2E\x30\x1E" + "\x37\x36\x30\x36\x30\x39\x73\x31\x39\x37\x34\x20\x20\x20\x20\x6E" + "\x79\x75\x61\x20\x20\x20\x20\x20\x62\x20\x20\x20\x20\x31\x30\x31" + "\x31\x30\x20\x65\x6E\x67\x20\x20\x1E\x20\x20\x1F\x61\x44\x4C\x43" + "\x1F\x63\x44\x4C\x43\x1F\x64\x44\x4C\x43\x1E\x30\x30\x1F\x61\x52" + "\x43\x37\x31\x2E\x33\x1F\x62\x2E\x57\x36\x37\x20\x31\x39\x37\x31" + "\x1E\x30\x30\x1F\x61\x36\x31\x36\x2E\x30\x37\x2F\x35\x37\x35\x2F" + "\x30\x32\x38\x35\x34\x1E\x32\x30\x1F\x61\x57\x6F\x72\x6B\x73\x68" + "\x6F\x70\x20\x6F\x6E\x20\x43\x6F\x6D\x70\x75\x74\x65\x72\x20\x50" + "\x72\x6F\x63\x65\x73\x73\x69\x6E\x67\x20\x6F\x66\x20\x44\x79\x6E" + "\x61\x6D\x69\x63\x20\x49\x6D\x61\x67\x65\x73\x20\x66\x72\x6F\x6D" + "\x20\x61\x6E\x20\x41\x6E\x67\x65\x72\x20\x53\x63\x69\x6E\x74\x69" + "\x6C\x6C\x61\x74\x69\x6F\x6E\x20\x43\x61\x6D\x65\x72\x61\x2C\x1F" + "\x63\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20\x55\x6E\x69\x76" + "\x65\x72\x73\x69\x74\x79\x2C\x1F\x64\x31\x39\x37\x31\x2E\x1E\x31" + "\x30\x1F\x61\x43\x6F\x6D\x70\x75\x74\x65\x72\x20\x70\x72\x6F\x63" + "\x65\x73\x73\x69\x6E\x67\x20\x6F\x66\x20\x64\x79\x6E\x61\x6D\x69" + "\x63\x20\x69\x6D\x61\x67\x65\x73\x20\x66\x72\x6F\x6D\x20\x61\x6E" + "\x20\x41\x6E\x67\x65\x72\x20\x73\x63\x69\x6E\x74\x69\x6C\x6C\x61" + "\x74\x69\x6F\x6E\x20\x63\x61\x6D\x65\x72\x61\x20\x3A\x1F\x62\x74" + "\x68\x65\x20\x70\x72\x6F\x63\x65\x65\x64\x69\x6E\x67\x73\x20\x6F" + "\x66\x20\x61\x20\x77\x6F\x72\x6B\x73\x68\x6F\x70\x20\x2F\x1F\x63" + "\x63\x6F\x73\x70\x6F\x6E\x73\x6F\x72\x65\x64\x20\x62\x79\x20\x74" + "\x68\x65\x20\x42\x69\x6F\x6D\x65\x64\x69\x63\x61\x6C\x20\x43\x6F" + "\x6D\x70\x75\x74\x65\x72\x20\x4C\x61\x62\x6F\x72\x61\x74\x6F\x72" + "\x79\x20\x61\x6E\x64\x20\x74\x68\x65\x20\x4E\x75\x63\x6C\x65\x61" + "\x72\x20\x4D\x65\x64\x69\x63\x69\x6E\x65\x20\x44\x69\x76\x69\x73" + "\x69\x6F\x6E\x2C\x20\x44\x65\x70\x61\x72\x74\x6D\x65\x6E\x74\x20" + "\x6F\x66\x20\x52\x61\x64\x69\x6F\x6C\x6F\x67\x79\x2C\x20\x53\x63" + "\x68\x6F\x6F\x6C\x20\x6F\x66\x20\x4D\x65\x64\x69\x63\x69\x6E\x65" + "\x2C\x20\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20\x55\x6E\x69" + "\x76\x65\x72\x73\x69\x74\x79\x2C\x20\x53\x74\x2E\x20\x4C\x6F\x75" + "\x69\x73\x2C\x20\x4A\x61\x6E\x75\x61\x72\x79\x20\x31\x38\x2D\x32" + "\x32\x2C\x20\x31\x39\x37\x31\x20\x3B\x20\x65\x64\x69\x74\x65\x64" + "\x20\x62\x79\x20\x4B\x65\x6E\x6E\x65\x74\x68\x20\x42\x2E\x20\x4C" + "\x61\x72\x73\x6F\x6E\x2C\x20\x4A\x65\x72\x6F\x6D\x65\x20\x52\x2E" + "\x20\x43\x6F\x78\x2C\x20\x4A\x72\x2E\x1E\x30\x20\x1F\x61\x4E\x65" + "\x77\x20\x59\x6F\x72\x6B\x20\x3A\x1F\x62\x53\x6F\x63\x69\x65\x74" + "\x79\x20\x6F\x66\x20\x4E\x75\x63\x6C\x65\x61\x72\x20\x4D\x65\x64" + "\x69\x63\x69\x6E\x65\x2C\x1F\x63\x5B\x63\x31\x39\x37\x34\x5D\x1E" + "\x20\x20\x1F\x61\x78\x69\x76\x2C\x20\x70\x2E\x20\x3A\x1F\x62\x69" + "\x6C\x6C\x2E\x20\x3B\x1F\x63\x32\x34\x20\x63\x6D\x2E\x1E\x20\x20" + "\x1F\x61\x49\x6E\x63\x6C\x75\x64\x65\x73\x20\x62\x69\x62\x6C\x69" + "\x6F\x67\x72\x61\x70\x68\x69\x63\x61\x6C\x20\x72\x65\x66\x65\x72" + "\x65\x6E\x63\x65\x73\x20\x61\x6E\x64\x20\x69\x6E\x64\x65\x78\x2E" + "\x1E\x20\x30\x1F\x61\x52\x61\x64\x69\x6F\x69\x73\x6F\x74\x6F\x70" + "\x65\x20\x73\x63\x61\x6E\x6E\x69\x6E\x67\x1F\x78\x44\x61\x74\x61" + "\x20\x70\x72\x6F\x63\x65\x73\x73\x69\x6E\x67\x1F\x78\x43\x6F\x6E" + "\x67\x72\x65\x73\x73\x65\x73\x2E\x1E\x20\x30\x1F\x61\x53\x63\x69" + "\x6E\x74\x69\x6C\x6C\x61\x74\x69\x6F\x6E\x20\x63\x61\x6D\x65\x72" + "\x61\x73\x1F\x78\x43\x6F\x6E\x67\x72\x65\x73\x73\x65\x73\x2E\x1E" + "\x20\x30\x1F\x61\x49\x6D\x61\x67\x69\x6E\x67\x20\x73\x79\x73\x74" + "\x65\x6D\x73\x20\x69\x6E\x20\x6D\x65\x64\x69\x63\x69\x6E\x65\x1F" + "\x78\x44\x61\x74\x61\x20\x70\x72\x6F\x63\x65\x73\x73\x69\x6E\x67" + "\x1F\x78\x43\x6F\x6E\x67\x72\x65\x73\x73\x65\x73\x2E\x1E\x31\x30" + "\x1F\x61\x4C\x61\x72\x73\x6F\x6E\x2C\x20\x4B\x65\x6E\x6E\x65\x74" + "\x68\x20\x42\x2E\x1E\x31\x30\x1F\x61\x43\x6F\x78\x2C\x20\x4A\x65" + "\x72\x6F\x6D\x65\x20\x52\x2E\x20\x1E\x32\x30\x1F\x61\x57\x61\x73" + "\x68\x69\x6E\x67\x74\x6F\x6E\x20\x55\x6E\x69\x76\x65\x72\x73\x69" + "\x74\x79\x2C\x20\x53\x74\x2E\x20\x4C\x6F\x75\x69\x73\x2E\x1F\x62" + "\x42\x69\x6F\x6D\x65\x64\x69\x63\x61\x6C\x20\x43\x6F\x6D\x70\x75" + "\x74\x65\x72\x20\x4C\x61\x62\x6F\x72\x61\x74\x6F\x72\x79\x2E\x1E" + "\x32\x30\x1F\x61\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20\x55" + "\x6E\x69\x76\x65\x72\x73\x69\x74\x79\x2C\x20\x53\x74\x2E\x20\x4C" + "\x6F\x75\x69\x73\x2E\x1F\x62\x4E\x75\x63\x6C\x65\x61\x72\x20\x4D" + "\x65\x64\x69\x63\x69\x6E\x65\x20\x44\x69\x76\x69\x73\x69\x6F\x6E" + "\x2E\x1E\x20\x20\x1F\x61\x20\x20\x20\x37\x33\x30\x39\x30\x39\x32" + "\x34\x20\x2F\x2F\x72\x38\x32\x1E\x1D" +},{ + "\x30\x30\x39\x34\x32\x63\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x35" + "\x33\x31\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x39\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x32\x33\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x34\x30\x30\x31\x30\x30\x30\x32\x33\x30" + "\x30\x36\x36\x35\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x38\x31" + "\x30\x34\x31\x30\x30\x31\x34\x30\x30\x30\x39\x39\x30\x35\x30\x30" + "\x30\x31\x36\x30\x30\x31\x31\x33\x30\x38\x32\x30\x30\x31\x36\x30" + "\x30\x31\x32\x39\x32\x34\x35\x30\x30\x37\x33\x30\x30\x31\x34\x35" + "\x32\x36\x30\x30\x30\x37\x30\x30\x30\x32\x31\x38\x33\x30\x30\x30" + "\x30\x35\x30\x30\x30\x32\x38\x38\x35\x30\x30\x30\x30\x34\x38\x30" + "\x30\x33\x33\x38\x35\x30\x30\x30\x30\x39\x36\x30\x30\x33\x38\x36" + "\x36\x33\x30\x30\x30\x33\x39\x30\x30\x34\x38\x32\x36\x33\x30\x30" + "\x30\x33\x39\x30\x30\x35\x32\x31\x37\x30\x30\x30\x30\x33\x38\x30" + "\x30\x35\x36\x30\x37\x30\x30\x30\x30\x33\x33\x30\x30\x35\x39\x38" + "\x37\x31\x30\x30\x30\x33\x34\x30\x30\x36\x33\x31\x1E\x20\x20\x20" + "\x37\x33\x32\x30\x39\x36\x32\x32\x20\x2F\x2F\x72\x38\x32\x33\x1E" + "\x44\x4C\x43\x1E\x31\x39\x38\x32\x30\x33\x32\x35\x30\x30\x30\x30" + "\x30\x30\x2E\x30\x1E\x37\x38\x30\x33\x30\x36\x6D\x31\x39\x30\x30" + "\x39\x39\x39\x39\x6F\x68\x75\x20\x20\x20\x20\x20\x20\x20\x20\x20" + "\x20\x20\x30\x30\x30\x30\x30\x20\x67\x72\x63\x20\x20\x1E\x20\x20" + "\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43\x1F\x64\x44\x4C\x43\x1E" + "\x30\x20\x1F\x61\x67\x72\x63\x68\x65\x62\x65\x6E\x67\x1E\x30\x30" + "\x1F\x61\x42\x53\x34\x32\x31\x1F\x62\x2E\x43\x36\x34\x1E\x30\x30" + "\x1F\x61\x32\x32\x30\x2E\x34\x2F\x34\x1F\x32\x31\x39\x1E\x30\x34" + "\x1F\x61\x54\x68\x65\x20\x43\x6F\x6D\x70\x75\x74\x65\x72\x20\x42" + "\x69\x62\x6C\x65\x20\x2F\x1F\x63\x4A\x2E\x20\x41\x72\x74\x68\x75" + "\x72\x20\x42\x61\x69\x72\x64\x2C\x20\x44\x61\x76\x69\x64\x20\x4E" + "\x6F\x65\x6C\x20\x46\x72\x65\x65\x64\x6D\x61\x6E\x2C\x20\x65\x64" + "\x69\x74\x6F\x72\x73\x2E\x1E\x30\x20\x1F\x61\x5B\x57\x6F\x6F\x73" + "\x74\x65\x72\x2C\x20\x4F\x68\x69\x6F\x5D\x20\x3A\x1F\x62\x42\x69" + "\x62\x6C\x69\x63\x61\x6C\x20\x52\x65\x73\x65\x61\x72\x63\x68\x20" + "\x41\x73\x73\x6F\x63\x69\x61\x74\x65\x73\x2C\x1F\x63\x3C\x31\x39" + "\x37\x33\x2D\x63\x31\x39\x38\x30\x20\x20\x20\x3E\x1E\x20\x20\x1F" + "\x61\x76\x2E\x20\x3C\x32\x2D\x34\x2C\x20\x37\x2D\x31\x30\x2C\x20" + "\x31\x33\x2C\x20\x31\x35\x2D\x31\x38\x2C\x20\x32\x30\x2D\x32\x34" + "\x20\x20\x20\x3E\x20\x3B\x1F\x63\x32\x38\x20\x63\x6D\x2E\x1E\x20" + "\x20\x1F\x61\x48\x65\x62\x72\x65\x77\x20\x61\x6E\x64\x20\x47\x72" + "\x65\x65\x6B\x3B\x20\x69\x6E\x74\x72\x6F\x64\x75\x63\x74\x69\x6F" + "\x6E\x73\x20\x69\x6E\x20\x45\x6E\x67\x6C\x69\x73\x68\x2E\x1E\x20" + "\x20\x1F\x61\x56\x6F\x6C\x73\x2E\x20\x32\x2C\x20\x38\x3A\x20\x4D" + "\x69\x73\x73\x6F\x75\x6C\x61\x2C\x20\x4D\x6F\x6E\x74\x2E\x20\x3A" + "\x20\x50\x75\x62\x6C\x69\x73\x68\x65\x64\x20\x62\x79\x20\x53\x63" + "\x68\x6F\x6C\x61\x72\x73\x20\x50\x72\x65\x73\x73\x20\x66\x6F\x72" + "\x20\x42\x69\x62\x6C\x69\x63\x61\x6C\x20\x52\x65\x73\x65\x61\x72" + "\x63\x68\x20\x41\x73\x73\x6F\x63\x69\x61\x74\x65\x73\x2E\x1E\x20" + "\x30\x1F\x61\x42\x69\x62\x6C\x65\x2E\x20\x4F\x2E\x54\x2E\x1F\x78" + "\x43\x6F\x6E\x63\x6F\x72\x64\x61\x6E\x63\x65\x73\x2C\x20\x48\x65" + "\x62\x72\x65\x77\x2E\x1E\x30\x30\x1F\x61\x42\x69\x62\x6C\x65\x2E" + "\x1F\x70\x4E\x2E\x54\x2E\x1F\x78\x43\x6F\x6E\x63\x6F\x72\x64\x61" + "\x6E\x63\x65\x73\x2C\x20\x47\x72\x65\x65\x6B\x2E\x1E\x31\x30\x1F" + "\x61\x42\x61\x69\x72\x64\x2C\x20\x4A\x2E\x20\x41\x72\x74\x68\x75" + "\x72\x1F\x71\x28\x4A\x6F\x73\x65\x70\x68\x20\x41\x72\x74\x68\x75" + "\x72\x29\x1E\x31\x30\x1F\x61\x46\x72\x65\x65\x64\x6D\x61\x6E\x2C" + "\x20\x44\x61\x76\x69\x64\x20\x4E\x6F\x65\x6C\x2C\x1F\x64\x31\x39" + "\x32\x32\x2D\x1E\x32\x30\x1F\x61\x42\x69\x62\x6C\x69\x63\x61\x6C" + "\x20\x52\x65\x73\x65\x61\x72\x63\x68\x20\x41\x73\x73\x6F\x63\x69" + "\x61\x74\x65\x73\x2E\x1E\x20\x20\x1F\x61\x20\x20\x20\x37\x33\x32" + "\x30\x39\x36\x32\x32\x20\x2F\x2F\x72\x38\x32\x33\x1E\x1D" +},{ + "\x30\x31\x30\x33\x33\x63\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x35" + "\x33\x20\x69\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x32\x31\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x32\x31" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x32\x35\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x34\x32\x30\x31\x30\x30\x30\x32\x35\x30" + "\x30\x37\x35\x34\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x38\x33" + "\x30\x34\x33\x30\x30\x31\x32\x30\x30\x31\x30\x31\x30\x35\x30\x30" + "\x30\x32\x32\x30\x30\x31\x31\x33\x31\x30\x30\x30\x30\x31\x39\x30" + "\x30\x31\x33\x35\x32\x34\x35\x30\x31\x30\x35\x30\x30\x31\x35\x34" + "\x32\x36\x30\x30\x30\x37\x33\x30\x30\x32\x35\x39\x33\x30\x30\x30" + "\x30\x33\x38\x30\x30\x33\x33\x32\x34\x39\x30\x30\x30\x36\x38\x30" + "\x30\x33\x37\x30\x35\x30\x30\x30\x30\x33\x35\x30\x30\x34\x33\x38" + "\x35\x30\x34\x30\x30\x32\x34\x30\x30\x34\x37\x33\x36\x35\x30\x30" + "\x30\x33\x34\x30\x30\x34\x39\x37\x36\x35\x31\x30\x30\x34\x36\x30" + "\x30\x35\x33\x31\x37\x30\x30\x30\x30\x33\x39\x30\x30\x35\x37\x37" + "\x38\x31\x30\x30\x31\x33\x38\x30\x30\x36\x31\x36\x1E\x20\x20\x20" + "\x37\x36\x33\x35\x37\x38\x39\x35\x20\x2F\x4D\x41\x50\x2F\x72\x38" + "\x32\x1E\x44\x4C\x43\x1E\x31\x39\x38\x32\x30\x38\x30\x36\x30\x30" + "\x30\x30\x30\x30\x2E\x30\x1E\x37\x36\x30\x34\x30\x37\x73\x31\x39" + "\x37\x34\x20\x20\x20\x20\x77\x61\x75\x61\x20\x20\x20\x20\x20\x62" + "\x20\x20\x20\x20\x30\x30\x30\x31\x30\x20\x65\x6E\x67\x20\x20\x1E" + "\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43\x1F\x64\x44\x4C" + "\x43\x1E\x20\x20\x1F\x61\x6E\x2D\x75\x73\x2D\x77\x61\x1E\x30\x30" + "\x1F\x61\x47\x31\x34\x36\x37\x2E\x50\x38\x1F\x62\x4D\x33\x20\x31" + "\x39\x37\x34\x1E\x31\x30\x1F\x61\x4D\x61\x69\x72\x73\x2C\x20\x4A" + "\x6F\x68\x6E\x20\x57\x2E\x1E\x31\x34\x1F\x61\x54\x68\x65\x20\x50" + "\x75\x67\x65\x74\x20\x53\x6F\x75\x6E\x64\x20\x52\x65\x67\x69\x6F" + "\x6E\x20\x3A\x1F\x62\x61\x20\x70\x6F\x72\x74\x66\x6F\x6C\x69\x6F" + "\x20\x6F\x66\x20\x74\x68\x65\x6D\x61\x74\x69\x63\x20\x63\x6F\x6D" + "\x70\x75\x74\x65\x72\x20\x6D\x61\x70\x73\x20\x2F\x1F\x63\x4A\x6F" + "\x68\x6E\x20\x57\x2E\x20\x4D\x61\x69\x72\x73\x2C\x20\x45\x75\x67" + "\x65\x6E\x65\x20\x41\x2E\x20\x48\x6F\x65\x72\x61\x75\x66\x2E\x1E" + "\x30\x20\x1F\x61\x5B\x42\x65\x6C\x6C\x69\x6E\x67\x68\x61\x6D\x2C" + "\x20\x57\x61\x73\x68\x2E\x5D\x20\x3A\x1F\x62\x43\x65\x6E\x74\x65" + "\x72\x20\x66\x6F\x72\x20\x50\x61\x63\x69\x66\x69\x63\x20\x4E\x6F" + "\x72\x74\x68\x77\x65\x73\x74\x20\x53\x74\x75\x64\x69\x65\x73\x2C" + "\x1F\x63\x63\x31\x39\x37\x34\x2E\x1E\x20\x20\x1F\x61\x69\x69\x69" + "\x2C\x20\x34\x31\x20\x70\x2E\x20\x3A\x1F\x62\x69\x6C\x6C\x2E\x20" + "\x3B\x1F\x63\x32\x35\x20\x78\x20\x33\x36\x20\x63\x6D\x2E\x1E\x31" + "\x20\x1F\x61\x4F\x63\x63\x61\x73\x69\x6F\x6E\x61\x6C\x20\x70\x61" + "\x70\x65\x72\x20\x2D\x20\x43\x65\x6E\x74\x65\x72\x20\x66\x6F\x72" + "\x20\x50\x61\x63\x69\x66\x69\x63\x20\x4E\x6F\x72\x74\x68\x77\x65" + "\x73\x74\x20\x53\x74\x75\x64\x69\x65\x73\x20\x3B\x20\x6E\x6F\x2E" + "\x20\x33\x1E\x20\x20\x1F\x61\x53\x63\x61\x6C\x65\x20\x6F\x66\x20" + "\x6D\x61\x70\x73\x20\x63\x61\x2E\x20\x31\x3A\x31\x2C\x30\x30\x30" + "\x2C\x30\x30\x30\x2E\x1E\x20\x20\x1F\x61\x42\x69\x62\x6C\x69\x6F" + "\x67\x72\x61\x70\x68\x79\x3A\x20\x70\x2E\x20\x34\x2E\x1E\x20\x30" + "\x1F\x61\x43\x61\x72\x74\x6F\x67\x72\x61\x70\x68\x79\x1F\x78\x44" + "\x61\x74\x61\x20\x70\x72\x6F\x63\x65\x73\x73\x69\x6E\x67\x2E\x1E" + "\x20\x30\x1F\x61\x50\x75\x67\x65\x74\x20\x53\x6F\x75\x6E\x64\x20" + "\x72\x65\x67\x69\x6F\x6E\x20\x28\x57\x61\x73\x68\x2E\x29\x1F\x78" + "\x43\x65\x6E\x73\x75\x73\x1F\x78\x4D\x61\x70\x73\x2E\x1E\x31\x30" + "\x1F\x61\x48\x6F\x65\x72\x61\x75\x66\x2C\x20\x45\x75\x67\x65\x6E" + "\x65\x20\x41\x2E\x2C\x1F\x65\x6A\x6F\x69\x6E\x74\x20\x61\x75\x74" + "\x68\x6F\x72\x2E\x1E\x31\x20\x1F\x61\x57\x61\x73\x68\x69\x6E\x67" + "\x74\x6F\x6E\x20\x28\x53\x74\x61\x74\x65\x29\x2E\x1F\x62\x57\x65" + "\x73\x74\x65\x72\x6E\x20\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E" + "\x20\x53\x74\x61\x74\x65\x20\x43\x6F\x6C\x6C\x65\x67\x65\x2C\x20" + "\x42\x65\x6C\x6C\x69\x6E\x67\x68\x61\x6D\x2E\x1F\x62\x43\x65\x6E" + "\x74\x65\x72\x20\x66\x6F\x72\x20\x50\x61\x63\x69\x66\x69\x63\x20" + "\x4E\x6F\x72\x74\x68\x77\x65\x73\x74\x20\x53\x74\x75\x64\x69\x65" + "\x73\x2E\x1F\x74\x4F\x63\x63\x61\x73\x69\x6F\x6E\x61\x6C\x20\x70" + "\x61\x70\x65\x72\x20\x3B\x1F\x76\x6E\x6F\x2E\x20\x33\x2E\x1E\x20" + "\x20\x1F\x61\x20\x20\x20\x37\x36\x33\x35\x37\x38\x39\x35\x20\x2F" + "\x4D\x41\x50\x2F\x72\x38\x32\x1E\x1D" +},{ + "\x30\x31\x30\x30\x30\x70\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x32" + "\x39\x20\x69\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x37\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x34\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x37\x35\x33\x30\x32\x30\x30\x30\x31\x35\x30\x30\x30\x37\x35" + "\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x39\x30\x30\x35\x30\x30" + "\x30\x31\x38\x30\x30\x31\x30\x38\x30\x38\x32\x30\x30\x31\x35\x30" + "\x30\x31\x32\x36\x32\x34\x35\x30\x33\x30\x34\x30\x30\x31\x34\x31" + "\x32\x36\x30\x30\x30\x34\x38\x30\x30\x34\x34\x35\x33\x30\x30\x30" + "\x30\x33\x33\x30\x30\x34\x39\x33\x35\x30\x34\x30\x30\x35\x31\x30" + "\x30\x35\x32\x36\x36\x35\x30\x30\x30\x32\x38\x30\x30\x35\x37\x37" + "\x37\x30\x30\x30\x30\x32\x39\x30\x30\x36\x30\x35\x37\x31\x30\x30" + "\x30\x34\x38\x30\x30\x36\x33\x34\x37\x31\x30\x30\x30\x37\x31\x30" + "\x30\x36\x38\x32\x1E\x20\x20\x20\x37\x37\x30\x30\x30\x33\x34\x38" + "\x20\x1E\x44\x4C\x43\x1E\x31\x39\x37\x37\x30\x37\x30\x37\x30\x30" + "\x30\x30\x30\x30\x2E\x30\x1E\x37\x37\x30\x31\x31\x32\x73\x31\x39" + "\x37\x37\x20\x20\x20\x20\x6D\x64\x75\x61\x20\x20\x20\x20\x20\x62" + "\x20\x20\x20\x20\x31\x30\x31\x31\x30\x20\x65\x6E\x67\x20\x20\x1E" + "\x20\x20\x1F\x61\x30\x38\x33\x39\x31\x30\x38\x38\x32\x36\x1E\x20" + "\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43\x1F\x64\x44\x4C\x43" + "\x1E\x30\x30\x1F\x61\x52\x43\x37\x38\x2E\x37\x2E\x54\x36\x1F\x62" + "\x52\x34\x1E\x30\x30\x1F\x61\x36\x31\x36\x2E\x30\x37\x2F\x35\x37" + "\x32\x1E\x30\x30\x1F\x61\x52\x65\x63\x6F\x6E\x73\x74\x72\x75\x63" + "\x74\x69\x6F\x6E\x20\x74\x6F\x6D\x6F\x67\x72\x61\x70\x68\x79\x20" + "\x69\x6E\x20\x64\x69\x61\x67\x6E\x6F\x73\x74\x69\x63\x20\x72\x61" + "\x64\x69\x6F\x6C\x6F\x67\x79\x20\x61\x6E\x64\x20\x6E\x75\x63\x6C" + "\x65\x61\x72\x20\x6D\x65\x64\x69\x63\x69\x6E\x65\x20\x3A\x1F\x62" + "\x70\x72\x6F\x63\x65\x65\x64\x69\x6E\x67\x73\x20\x6F\x66\x20\x74" + "\x68\x65\x20\x77\x6F\x72\x6B\x73\x68\x6F\x70\x20\x2E\x2E\x2E\x20" + "\x2F\x1F\x63\x65\x64\x69\x74\x65\x64\x20\x62\x79\x20\x4D\x69\x63" + "\x68\x65\x6C\x20\x4D\x2E\x20\x54\x65\x72\x2D\x50\x6F\x67\x6F\x73" + "\x73\x69\x61\x6E\x20\x2E\x2E\x2E\x20\x5B\x65\x74\x20\x61\x6C\x2E" + "\x5D\x20\x3B\x20\x63\x6F\x2D\x73\x70\x6F\x6E\x73\x6F\x72\x73\x2C" + "\x20\x74\x68\x65\x20\x45\x64\x77\x61\x72\x64\x20\x4D\x61\x6C\x6C" + "\x69\x6E\x63\x6B\x72\x6F\x64\x74\x20\x49\x6E\x73\x74\x69\x74\x75" + "\x74\x65\x20\x6F\x66\x20\x52\x61\x64\x69\x6F\x6C\x6F\x67\x79\x20" + "\x61\x6E\x64\x20\x42\x69\x6F\x6D\x65\x64\x69\x63\x61\x6C\x20\x43" + "\x6F\x6D\x70\x75\x74\x65\x72\x20\x4C\x61\x62\x6F\x72\x61\x74\x6F" + "\x72\x79\x2C\x20\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20\x55" + "\x6E\x69\x76\x65\x72\x73\x69\x74\x79\x20\x53\x63\x68\x6F\x6F\x6C" + "\x20\x6F\x66\x20\x4D\x65\x64\x69\x63\x69\x6E\x65\x20\x2E\x2E\x2E" + "\x2E\x1E\x30\x20\x1F\x61\x42\x61\x6C\x74\x69\x6D\x6F\x72\x65\x20" + "\x3A\x1F\x62\x55\x6E\x69\x76\x65\x72\x73\x69\x74\x79\x20\x50\x61" + "\x72\x6B\x20\x50\x72\x65\x73\x73\x2C\x1F\x63\x63\x31\x39\x37\x37" + "\x2E\x1E\x20\x20\x1F\x61\x78\x76\x2C\x20\x35\x37\x33\x20\x70\x2E" + "\x20\x3A\x1F\x62\x69\x6C\x6C\x2E\x20\x3B\x1F\x63\x32\x34\x20\x63" + "\x6D\x2E\x1E\x20\x20\x1F\x61\x49\x6E\x63\x6C\x75\x64\x65\x73\x20" + "\x62\x69\x62\x6C\x69\x6F\x67\x72\x61\x70\x68\x69\x63\x61\x6C\x20" + "\x72\x65\x66\x65\x72\x65\x6E\x63\x65\x73\x20\x61\x6E\x64\x20\x69" + "\x6E\x64\x65\x78\x2E\x1E\x20\x30\x1F\x61\x54\x6F\x6D\x6F\x67\x72" + "\x61\x70\x68\x79\x1F\x78\x43\x6F\x6E\x67\x72\x65\x73\x73\x65\x73" + "\x2E\x1E\x32\x30\x1F\x61\x54\x65\x72\x2D\x50\x6F\x67\x6F\x73\x73" + "\x69\x61\x6E\x2C\x20\x4D\x69\x63\x68\x65\x6C\x20\x4D\x2E\x1E\x32" + "\x30\x1F\x61\x45\x64\x77\x61\x72\x64\x20\x4D\x61\x6C\x6C\x69\x6E" + "\x63\x6B\x72\x6F\x64\x74\x20\x49\x6E\x73\x74\x69\x74\x75\x74\x65" + "\x20\x6F\x66\x20\x52\x61\x64\x69\x6F\x6C\x6F\x67\x79\x2E\x1E\x32" + "\x30\x1F\x61\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20\x55\x6E" + "\x69\x76\x65\x72\x73\x69\x74\x79\x2C\x20\x53\x74\x2E\x20\x4C\x6F" + "\x75\x69\x73\x2E\x1F\x62\x42\x69\x6F\x6D\x65\x64\x69\x63\x61\x6C" + "\x20\x43\x6F\x6D\x70\x75\x74\x65\x72\x20\x4C\x61\x62\x6F\x72\x61" + "\x74\x6F\x72\x79\x2E\x1E\x20\x20\x1F\x61\x20\x20\x20\x37\x37\x30" + "\x30\x30\x33\x34\x38\x20\x1E\x1D" +},{ + "\x30\x31\x34\x39\x33\x70\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x37" + "\x37\x20\x69\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x37\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x34\x30\x31\x30\x30\x30\x31\x37\x30" + "\x31\x31\x39\x38\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x37\x35" + "\x30\x34\x33\x30\x30\x31\x32\x30\x30\x30\x39\x33\x30\x35\x30\x30" + "\x30\x33\x34\x30\x30\x31\x30\x35\x30\x38\x32\x30\x30\x32\x38\x30" + "\x30\x31\x33\x39\x30\x38\x36\x30\x30\x31\x38\x30\x30\x31\x36\x37" + "\x31\x31\x31\x30\x30\x39\x35\x30\x30\x31\x38\x35\x32\x34\x35\x30" + "\x34\x34\x38\x30\x30\x32\x38\x30\x32\x36\x30\x30\x31\x33\x38\x30" + "\x30\x37\x32\x38\x33\x30\x30\x30\x30\x33\x34\x30\x30\x38\x36\x36" + "\x34\x39\x30\x30\x30\x33\x36\x30\x30\x39\x30\x30\x36\x35\x30\x30" + "\x30\x35\x39\x30\x30\x39\x33\x36\x37\x30\x30\x30\x30\x33\x31\x30" + "\x30\x39\x39\x35\x37\x30\x30\x30\x30\x32\x31\x30\x31\x30\x32\x36" + "\x37\x30\x30\x30\x30\x32\x30\x30\x31\x30\x34\x37\x37\x31\x30\x30" + "\x30\x35\x30\x30\x31\x30\x36\x37\x38\x31\x30\x30\x30\x38\x31\x30" + "\x31\x31\x31\x37\x1E\x20\x20\x20\x37\x37\x30\x30\x34\x37\x37\x33" + "\x20\x1E\x44\x4C\x43\x1E\x31\x39\x37\x37\x30\x38\x32\x32\x30\x30" + "\x30\x30\x30\x30\x2E\x30\x1E\x37\x37\x30\x33\x32\x31\x73\x31\x39" + "\x37\x37\x20\x20\x20\x20\x64\x63\x75\x61\x20\x20\x20\x20\x20\x20" + "\x20\x20\x20\x20\x31\x30\x30\x30\x30\x20\x65\x6E\x67\x20\x20\x1E" + "\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43\x1F\x64\x44\x4C" + "\x43\x1E\x20\x20\x1F\x61\x6E\x2D\x75\x73\x2D\x2D\x2D\x1E\x30\x30" + "\x1F\x61\x51\x43\x31\x30\x30\x1F\x62\x2E\x55\x35\x37\x20\x6E\x6F" + "\x2E\x20\x35\x30\x30\x2D\x38\x1F\x61\x54\x41\x31\x36\x35\x30\x1E" + "\x30\x30\x1F\x61\x36\x30\x32\x2F\x2E\x31\x20\x73\x1F\x61\x36\x32" + "\x31\x2E\x33\x38\x31\x2E\x39\x2F\x35\x39\x38\x1E\x20\x20\x1F\x61" + "\x43\x31\x33\x2E\x31\x30\x3A\x35\x30\x30\x2D\x38\x2E\x1E\x32\x30" + "\x1F\x61\x57\x6F\x72\x6B\x73\x68\x6F\x70\x20\x6F\x6E\x20\x53\x74" + "\x61\x6E\x64\x61\x72\x64\x73\x20\x66\x6F\x72\x20\x49\x6D\x61\x67" + "\x65\x20\x50\x61\x74\x74\x65\x72\x6E\x20\x52\x65\x63\x6F\x67\x6E" + "\x69\x74\x69\x6F\x6E\x2C\x1F\x63\x4E\x61\x74\x69\x6F\x6E\x61\x6C" + "\x20\x42\x75\x72\x65\x61\x75\x20\x6F\x66\x20\x53\x74\x61\x6E\x64" + "\x61\x72\x64\x73\x2C\x1F\x64\x31\x39\x37\x36\x2E\x1E\x31\x30\x1F" + "\x61\x43\x6F\x6D\x70\x75\x74\x65\x72\x20\x73\x63\x69\x65\x6E\x63" + "\x65\x20\x26\x20\x74\x65\x63\x68\x6E\x6F\x6C\x6F\x67\x79\x20\x3A" + "\x1F\x62\x70\x72\x6F\x63\x65\x65\x64\x69\x6E\x67\x73\x20\x6F\x66" + "\x20\x61\x20\x77\x6F\x72\x6B\x73\x68\x6F\x70\x20\x68\x65\x6C\x64" + "\x20\x61\x74\x20\x74\x68\x65\x20\x4E\x61\x74\x69\x6F\x6E\x61\x6C" + "\x20\x42\x75\x72\x65\x61\x75\x20\x6F\x66\x20\x53\x74\x61\x6E\x64" + "\x61\x72\x64\x73\x2C\x20\x47\x61\x69\x74\x68\x65\x72\x73\x62\x75" + "\x72\x67\x2C\x20\x4D\x44\x2C\x20\x4A\x75\x6E\x65\x20\x33\x2D\x34" + "\x2C\x20\x31\x39\x37\x36\x20\x2F\x1F\x63\x57\x6F\x72\x6B\x73\x68" + "\x6F\x70\x20\x6F\x6E\x20\x53\x74\x61\x6E\x64\x61\x72\x64\x73\x20" + "\x66\x6F\x72\x20\x49\x6D\x61\x67\x65\x20\x50\x61\x74\x74\x65\x72" + "\x6E\x20\x52\x65\x63\x6F\x67\x6E\x69\x74\x69\x6F\x6E\x20\x3B\x20" + "\x4A\x6F\x68\x6E\x20\x4D\x2E\x20\x45\x76\x61\x6E\x73\x2C\x20\x4A" + "\x72\x2E\x2C\x20\x52\x75\x73\x73\x65\x6C\x6C\x20\x4B\x69\x72\x73" + "\x63\x68\x2C\x20\x61\x6E\x64\x20\x52\x6F\x67\x65\x72\x20\x4E\x2E" + "\x20\x4E\x61\x67\x65\x6C\x2C\x20\x65\x64\x69\x74\x6F\x72\x5B\x73" + "\x5D\x20\x3B\x20\x73\x70\x6F\x6E\x73\x6F\x72\x65\x64\x20\x62\x79" + "\x20\x4E\x61\x74\x69\x6F\x6E\x61\x6C\x20\x42\x75\x72\x65\x61\x75" + "\x20\x6F\x66\x20\x53\x74\x61\x6E\x64\x61\x72\x64\x73\x2C\x20\x45" + "\x6C\x65\x63\x74\x72\x6F\x6E\x69\x63\x20\x49\x6E\x64\x75\x73\x74" + "\x72\x69\x65\x73\x20\x41\x73\x73\x6F\x63\x69\x61\x74\x69\x6F\x6E" + "\x2C\x20\x49\x6E\x73\x74\x69\x74\x75\x74\x65\x20\x6F\x66\x20\x45" + "\x6C\x65\x63\x74\x72\x69\x63\x61\x6C\x20\x61\x6E\x64\x20\x45\x6C" + "\x65\x63\x74\x72\x6F\x6E\x69\x63\x20\x45\x6E\x67\x69\x6E\x65\x65" + "\x72\x73\x2C\x20\x69\x6E\x20\x63\x6F\x6F\x70\x65\x72\x61\x74\x69" + "\x6F\x6E\x20\x77\x69\x74\x68\x20\x41\x73\x73\x6F\x63\x69\x61\x74" + "\x69\x6F\x6E\x20\x66\x6F\x72\x20\x43\x6F\x6D\x70\x75\x74\x69\x6E" + "\x67\x20\x4D\x61\x63\x68\x69\x6E\x65\x72\x79\x2E\x1E\x30\x20\x1F" + "\x61\x5B\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x5D\x20\x3A\x1F" + "\x62\x55\x2E\x53\x2E\x20\x44\x65\x70\x74\x2E\x20\x6F\x66\x20\x43" + "\x6F\x6D\x6D\x65\x72\x63\x65\x2C\x20\x4E\x61\x74\x69\x6F\x6E\x61" + "\x6C\x20\x42\x75\x72\x65\x61\x75\x20\x6F\x66\x20\x53\x74\x61\x6E" + "\x64\x61\x72\x64\x73\x20\x3A\x20\x66\x6F\x72\x20\x73\x61\x6C\x65" + "\x20\x62\x79\x20\x74\x68\x65\x20\x53\x75\x70\x74\x2E\x20\x6F\x66" + "\x20\x44\x6F\x63\x73\x2E\x2C\x20\x55\x2E\x53\x2E\x20\x47\x6F\x76" + "\x74\x2E\x20\x50\x72\x69\x6E\x74\x2E\x20\x4F\x66\x66\x2E\x2C\x1F" + "\x63\x31\x39\x37\x37\x2E\x1E\x20\x20\x1F\x61\x76\x69\x69\x2C\x20" + "\x31\x31\x32\x20\x70\x2E\x20\x3A\x1F\x62\x69\x6C\x6C\x2E\x20\x3B" + "\x1F\x63\x32\x36\x20\x63\x6D\x2E\x1E\x31\x20\x1F\x61\x4E\x42\x53" + "\x20\x73\x70\x65\x63\x69\x61\x6C\x20\x70\x75\x62\x6C\x69\x63\x61" + "\x74\x69\x6F\x6E\x20\x3B\x20\x35\x30\x30\x2D\x38\x1E\x20\x30\x1F" + "\x61\x4F\x70\x74\x69\x63\x61\x6C\x20\x70\x61\x74\x74\x65\x72\x6E" + "\x20\x72\x65\x63\x6F\x67\x6E\x69\x74\x69\x6F\x6E\x1F\x78\x53\x74" + "\x61\x6E\x64\x61\x72\x64\x73\x1F\x7A\x55\x6E\x69\x74\x65\x64\x20" + "\x53\x74\x61\x74\x65\x73\x2E\x1E\x31\x30\x1F\x61\x45\x76\x61\x6E" + "\x73\x2C\x20\x4A\x6F\x68\x6E\x20\x4D\x61\x72\x74\x69\x6E\x2C\x1F" + "\x64\x31\x39\x34\x32\x2D\x1E\x31\x30\x1F\x61\x4B\x69\x72\x73\x63" + "\x68\x2C\x20\x52\x75\x73\x73\x65\x6C\x6C\x2E\x1E\x31\x30\x1F\x61" + "\x4E\x61\x67\x65\x6C\x2C\x20\x52\x6F\x67\x65\x72\x20\x4E\x2E\x1E" + "\x31\x30\x1F\x61\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65" + "\x73\x2E\x1F\x62\x4E\x61\x74\x69\x6F\x6E\x61\x6C\x20\x42\x75\x72" + "\x65\x61\x75\x20\x6F\x66\x20\x53\x74\x61\x6E\x64\x61\x72\x64\x73" + "\x2E\x1E\x31\x20\x1F\x61\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61" + "\x74\x65\x73\x2E\x1F\x62\x4E\x61\x74\x69\x6F\x6E\x61\x6C\x20\x42" + "\x75\x72\x65\x61\x75\x20\x6F\x66\x20\x53\x74\x61\x6E\x64\x61\x72" + "\x64\x73\x2E\x1F\x74\x53\x70\x65\x63\x69\x61\x6C\x20\x70\x75\x62" + "\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x3B\x1F\x76\x35\x30\x30\x2D" + "\x38\x2E\x1E\x20\x20\x1F\x61\x20\x20\x20\x37\x37\x30\x30\x34\x37" + "\x37\x33\x20\x1E\x1D" +},{ + "\x30\x30\x38\x37\x38\x63\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x32" + "\x39\x20\x69\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x37\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x34\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x36\x33\x31\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x37\x35" + "\x30\x35\x30\x30\x30\x33\x38\x30\x30\x30\x39\x33\x30\x38\x32\x30" + "\x30\x32\x32\x30\x30\x31\x33\x31\x30\x38\x36\x30\x30\x31\x37\x30" + "\x30\x31\x35\x33\x31\x30\x30\x30\x30\x31\x39\x30\x30\x31\x37\x30" + "\x32\x34\x35\x30\x30\x38\x37\x30\x30\x31\x38\x39\x32\x36\x30\x30" + "\x31\x33\x38\x30\x30\x32\x37\x36\x33\x30\x30\x30\x30\x32\x34\x30" + "\x30\x34\x31\x34\x34\x34\x30\x30\x30\x33\x34\x30\x30\x34\x33\x38" + "\x34\x39\x30\x30\x30\x33\x36\x30\x30\x34\x37\x32\x36\x35\x30\x30" + "\x30\x34\x32\x30\x30\x35\x30\x38\x38\x31\x30\x30\x30\x38\x31\x30" + "\x30\x35\x35\x30\x1E\x20\x20\x20\x37\x37\x30\x30\x35\x35\x35\x38" + "\x20\x1E\x44\x4C\x43\x1E\x31\x39\x37\x37\x30\x37\x31\x33\x30\x30" + "\x30\x30\x30\x30\x2E\x30\x1E\x37\x37\x30\x34\x30\x31\x73\x31\x39" + "\x37\x37\x20\x20\x20\x20\x64\x63\x75\x20\x20\x20\x20\x20\x20\x20" + "\x20\x20\x20\x20\x30\x30\x30\x31\x30\x20\x65\x6E\x67\x20\x20\x1E" + "\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43\x1F\x64\x44\x4C" + "\x43\x1E\x30\x30\x1F\x61\x51\x43\x31\x30\x30\x1F\x62\x2E\x55\x35" + "\x37\x20\x6E\x6F\x2E\x20\x35\x30\x30\x2D\x39\x1F\x61\x51\x41\x37" + "\x36\x2E\x39\x2E\x41\x32\x35\x1E\x30\x30\x1F\x61\x36\x30\x32\x2F" + "\x2E\x31\x20\x73\x1F\x61\x30\x30\x31\x2E\x36\x2F\x34\x1E\x30\x20" + "\x1F\x61\x43\x31\x33\x2E\x31\x30\x3A\x35\x30\x30\x2D\x39\x1E\x31" + "\x30\x1F\x61\x57\x6F\x6F\x64\x2C\x20\x48\x65\x6C\x65\x6E\x20\x4D" + "\x2E\x1E\x31\x34\x1F\x61\x54\x68\x65\x20\x75\x73\x65\x20\x6F\x66" + "\x20\x70\x61\x73\x73\x77\x6F\x72\x64\x73\x20\x66\x6F\x72\x20\x63" + "\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x64\x20\x61\x63\x63\x65\x73\x73" + "\x20\x74\x6F\x20\x63\x6F\x6D\x70\x75\x74\x65\x72\x20\x72\x65\x73" + "\x6F\x75\x72\x63\x65\x73\x20\x2F\x1F\x63\x48\x65\x6C\x65\x6E\x20" + "\x4D\x2E\x20\x57\x6F\x6F\x64\x2E\x1E\x30\x20\x1F\x61\x5B\x57\x61" + "\x73\x68\x69\x6E\x67\x74\x6F\x6E\x5D\x20\x3A\x1F\x62\x55\x2E\x53" + "\x2E\x20\x44\x65\x70\x74\x2E\x20\x6F\x66\x20\x43\x6F\x6D\x6D\x65" + "\x72\x63\x65\x2C\x20\x4E\x61\x74\x69\x6F\x6E\x61\x6C\x20\x42\x75" + "\x72\x65\x61\x75\x20\x6F\x66\x20\x53\x74\x61\x6E\x64\x61\x72\x64" + "\x73\x20\x3A\x20\x66\x6F\x72\x20\x73\x61\x6C\x65\x20\x62\x79\x20" + "\x74\x68\x65\x20\x53\x75\x70\x74\x2E\x20\x6F\x66\x20\x44\x6F\x63" + "\x73\x2E\x2C\x20\x55\x2E\x53\x2E\x20\x47\x6F\x76\x74\x2E\x20\x50" + "\x72\x69\x6E\x74\x2E\x20\x4F\x66\x66\x2E\x2C\x1F\x63\x31\x39\x37" + "\x37\x2E\x1E\x20\x20\x1F\x61\x69\x76\x2C\x20\x35\x33\x20\x70\x2E" + "\x20\x3B\x1F\x63\x32\x36\x20\x63\x6D\x2E\x1E\x20\x30\x1F\x61\x43" + "\x6F\x6D\x70\x75\x74\x65\x72\x20\x73\x63\x69\x65\x6E\x63\x65\x20" + "\x26\x20\x74\x65\x63\x68\x6E\x6F\x6C\x6F\x67\x79\x1E\x31\x20\x1F" + "\x61\x4E\x42\x53\x20\x73\x70\x65\x63\x69\x61\x6C\x20\x70\x75\x62" + "\x6C\x69\x63\x61\x74\x69\x6F\x6E\x20\x3B\x20\x35\x30\x30\x2D\x39" + "\x1E\x20\x30\x1F\x61\x43\x6F\x6D\x70\x75\x74\x65\x72\x73\x1F\x78" + "\x41\x63\x63\x65\x73\x73\x20\x63\x6F\x6E\x74\x72\x6F\x6C\x1F\x78" + "\x50\x61\x73\x73\x77\x6F\x72\x64\x73\x2E\x1E\x31\x20\x1F\x61\x55" + "\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73\x2E\x1F\x62\x4E" + "\x61\x74\x69\x6F\x6E\x61\x6C\x20\x42\x75\x72\x65\x61\x75\x20\x6F" + "\x66\x20\x53\x74\x61\x6E\x64\x61\x72\x64\x73\x2E\x1F\x74\x53\x70" + "\x65\x63\x69\x61\x6C\x20\x70\x75\x62\x6C\x69\x63\x61\x74\x69\x6F" + "\x6E\x20\x3B\x1F\x76\x35\x30\x30\x2D\x39\x2E\x1E\x20\x20\x1F\x61" + "\x20\x20\x20\x37\x37\x30\x30\x35\x35\x35\x38\x20\x1E\x1D" +},{ + "\x30\x30\x37\x39\x31\x63\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x31" + "\x37\x20\x20\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x38\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x38" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x32\x32\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x39\x30\x31\x30\x30\x30\x32\x32\x30" + "\x30\x35\x35\x31\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x38\x30" + "\x30\x34\x33\x30\x30\x33\x30\x30\x30\x30\x39\x38\x30\x35\x30\x30" + "\x30\x31\x38\x30\x30\x31\x32\x38\x30\x38\x32\x30\x30\x31\x38\x30" + "\x30\x31\x34\x36\x31\x30\x30\x30\x30\x32\x31\x30\x30\x31\x36\x34" + "\x32\x34\x35\x30\x31\x36\x32\x30\x30\x31\x38\x35\x32\x36\x30\x30" + "\x30\x32\x33\x30\x30\x33\x34\x37\x33\x30\x30\x30\x30\x32\x36\x30" + "\x30\x33\x37\x30\x35\x30\x30\x30\x30\x32\x39\x30\x30\x33\x39\x36" + "\x36\x35\x30\x30\x30\x36\x34\x30\x30\x34\x32\x35\x37\x31\x30\x30" + "\x30\x36\x32\x30\x30\x34\x38\x39\x1E\x20\x20\x20\x37\x37\x36\x31" + "\x36\x33\x36\x37\x20\x2F\x2F\x72\x38\x34\x1E\x44\x4C\x43\x1E\x31" + "\x39\x38\x34\x31\x32\x31\x33\x30\x30\x30\x30\x30\x30\x2E\x30\x1E" + "\x37\x32\x30\x33\x32\x39\x73\x31\x39\x37\x31\x20\x20\x20\x20\x64" + "\x63\x75\x61\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x30\x30\x30" + "\x31\x30\x20\x65\x6E\x67\x20\x20\x1E\x20\x20\x1F\x61\x44\x4C\x43" + "\x1F\x63\x44\x4C\x43\x1F\x64\x44\x4C\x43\x1E\x20\x20\x1F\x61\x6E" + "\x2D\x75\x73\x2D\x64\x63\x1F\x61\x6E\x2D\x75\x73\x2D\x6D\x64\x1F" + "\x61\x6E\x2D\x75\x73\x2D\x76\x61\x1E\x30\x30\x1F\x61\x48\x45\x32" + "\x37\x38\x31\x2E\x57\x33\x1F\x62\x45\x35\x1E\x30\x30\x1F\x61\x33" + "\x38\x35\x2F\x2E\x32\x32\x2F\x30\x39\x37\x35\x33\x1E\x31\x30\x1F" + "\x61\x45\x6E\x67\x6C\x75\x6E\x64\x2C\x20\x43\x61\x72\x6C\x20\x52" + "\x2E\x1E\x31\x30\x1F\x61\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E" + "\x20\x6D\x65\x74\x72\x6F\x70\x6F\x6C\x69\x74\x61\x6E\x20\x61\x72" + "\x65\x61\x20\x72\x61\x69\x6C\x20\x63\x6F\x6D\x70\x75\x74\x65\x72" + "\x20\x66\x65\x61\x73\x69\x62\x69\x6C\x69\x74\x79\x20\x73\x74\x75" + "\x64\x79\x3B\x1F\x62\x66\x69\x6E\x61\x6C\x20\x72\x65\x70\x6F\x72" + "\x74\x1F\x63\x5B\x62\x79\x5D\x20\x43\x61\x72\x6C\x20\x52\x2E\x20" + "\x45\x6E\x67\x6C\x75\x6E\x64\x2C\x20\x4A\x72\x2E\x20\x50\x72\x65" + "\x70\x61\x72\x65\x64\x20\x66\x6F\x72\x20\x55\x72\x62\x61\x6E\x20" + "\x4D\x61\x73\x73\x20\x54\x72\x61\x6E\x73\x70\x6F\x72\x74\x61\x74" + "\x69\x6F\x6E\x20\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x69" + "\x6F\x6E\x2E\x1E\x30\x20\x1F\x61\x57\x61\x73\x68\x69\x6E\x67\x74" + "\x6F\x6E\x2C\x1F\x63\x31\x39\x37\x31\x2E\x1E\x20\x20\x1F\x61\x39" + "\x32\x20\x6C\x2E\x1F\x62\x69\x6C\x6C\x75\x73\x2E\x1F\x63\x32\x38" + "\x20\x63\x6D\x2E\x1E\x20\x20\x1F\x61\x22\x43\x6F\x6E\x74\x72\x61" + "\x63\x74\x20\x44\x4F\x54\x2D\x55\x54\x2D\x31\x30\x30\x30\x33\x2E" + "\x22\x1E\x20\x30\x1F\x61\x52\x61\x69\x6C\x72\x6F\x61\x64\x73\x1F" + "\x7A\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20\x4D\x65\x74\x72" + "\x6F\x70\x6F\x6C\x69\x74\x61\x6E\x20\x41\x72\x65\x61\x1F\x78\x43" + "\x6F\x6D\x6D\x75\x74\x69\x6E\x67\x20\x74\x72\x61\x66\x66\x69\x63" + "\x2E\x1E\x31\x30\x1F\x61\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61" + "\x74\x65\x73\x2E\x1F\x62\x55\x72\x62\x61\x6E\x20\x4D\x61\x73\x73" + "\x20\x54\x72\x61\x6E\x73\x70\x6F\x72\x74\x61\x74\x69\x6F\x6E\x20" + "\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x69\x6F\x6E\x2E\x1E" + "\x20\x20\x1F\x61\x20\x20\x20\x37\x37\x36\x31\x36\x33\x36\x37\x20" + "\x2F\x2F\x72\x38\x34\x1E\x1D" +},{ + "\x30\x30\x36\x38\x36\x63\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x32" + "\x39\x20\x20\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x38\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x38" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x32\x32\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x39\x30\x31\x30\x30\x30\x32\x32\x30" + "\x30\x34\x33\x34\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x38\x30" + "\x30\x34\x33\x30\x30\x31\x32\x30\x30\x30\x39\x38\x30\x35\x30\x30" + "\x30\x32\x34\x30\x30\x31\x31\x30\x30\x38\x32\x30\x30\x31\x39\x30" + "\x30\x31\x33\x34\x31\x31\x30\x30\x30\x37\x30\x30\x30\x31\x35\x33" + "\x32\x34\x35\x30\x30\x35\x35\x30\x30\x32\x32\x33\x32\x35\x30\x30" + "\x30\x30\x39\x30\x30\x32\x37\x38\x32\x36\x30\x30\x30\x32\x31\x30" + "\x30\x32\x38\x37\x33\x30\x30\x30\x30\x31\x38\x30\x30\x33\x30\x38" + "\x35\x30\x30\x30\x30\x31\x37\x30\x30\x33\x32\x36\x36\x35\x30\x30" + "\x30\x34\x38\x30\x30\x33\x34\x33\x36\x35\x30\x30\x30\x34\x33\x30" + "\x30\x33\x39\x31\x1E\x20\x20\x20\x37\x37\x36\x33\x37\x30\x37\x35" + "\x20\x2F\x2F\x72\x38\x32\x1E\x44\x4C\x43\x1E\x31\x39\x38\x32\x30" + "\x38\x31\x37\x30\x30\x30\x30\x30\x30\x2E\x30\x1E\x37\x32\x30\x33" + "\x32\x30\x73\x31\x39\x37\x31\x20\x20\x20\x20\x77\x61\x75\x20\x20" + "\x20\x20\x20\x20\x73\x20\x20\x20\x20\x30\x30\x30\x30\x30\x20\x65" + "\x6E\x67\x20\x20\x1E\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C" + "\x43\x1F\x64\x44\x4C\x43\x1E\x20\x20\x1F\x61\x6E\x2D\x75\x73\x2D" + "\x77\x61\x1E\x30\x30\x1F\x61\x4C\x42\x31\x30\x32\x38\x2E\x35\x1F" + "\x62\x2E\x57\x33\x37\x20\x31\x39\x37\x31\x1E\x30\x30\x1F\x61\x33" + "\x37\x38\x2F\x2E\x30\x35\x32\x2F\x30\x39\x37\x39\x37\x1E\x31\x30" + "\x1F\x61\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20\x28\x53\x74" + "\x61\x74\x65\x29\x2E\x1F\x62\x53\x74\x61\x74\x65\x20\x42\x6F\x61" + "\x72\x64\x20\x66\x6F\x72\x20\x43\x6F\x6D\x6D\x75\x6E\x69\x74\x79" + "\x20\x43\x6F\x6C\x6C\x65\x67\x65\x20\x45\x64\x75\x63\x61\x74\x69" + "\x6F\x6E\x2E\x1E\x31\x32\x1F\x61\x41\x20\x70\x6C\x61\x6E\x20\x66" + "\x6F\x72\x20\x63\x6F\x6D\x6D\x75\x6E\x69\x74\x79\x20\x63\x6F\x6C" + "\x6C\x65\x67\x65\x20\x63\x6F\x6D\x70\x75\x74\x65\x72\x20\x64\x65" + "\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74\x2E\x1E\x20\x20\x1F\x61\x52" + "\x65\x76\x2E\x1E\x31\x20\x1F\x61\x5B\x4F\x6C\x79\x6D\x70\x69\x61" + "\x5D\x1F\x63\x31\x39\x37\x31\x2E\x1E\x20\x20\x1F\x61\x34\x37\x20" + "\x6C\x2E\x1F\x63\x32\x38\x20\x63\x6D\x2E\x1E\x20\x20\x1F\x61\x43" + "\x6F\x76\x65\x72\x20\x74\x69\x74\x6C\x65\x2E\x1E\x20\x30\x1F\x61" + "\x55\x6E\x69\x76\x65\x72\x73\x69\x74\x69\x65\x73\x20\x61\x6E\x64" + "\x20\x63\x6F\x6C\x6C\x65\x67\x65\x73\x1F\x78\x44\x61\x74\x61\x20" + "\x70\x72\x6F\x63\x65\x73\x73\x69\x6E\x67\x2E\x1E\x20\x30\x1F\x61" + "\x43\x6F\x6D\x6D\x75\x6E\x69\x74\x79\x20\x63\x6F\x6C\x6C\x65\x67" + "\x65\x73\x1F\x7A\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20\x28" + "\x53\x74\x61\x74\x65\x29\x1E\x20\x20\x1F\x61\x20\x20\x20\x37\x37" + "\x36\x33\x37\x30\x37\x35\x20\x2F\x2F\x72\x38\x32\x1E\x1D" +},{ + "\x30\x30\x36\x36\x38\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x31" + "\x37\x31\x20\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x37\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x34\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x34\x33\x33\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x37\x35" + "\x30\x35\x30\x30\x30\x31\x38\x30\x30\x30\x39\x33\x30\x38\x32\x30" + "\x30\x31\x36\x30\x30\x31\x31\x31\x31\x30\x30\x30\x30\x31\x39\x30" + "\x30\x31\x32\x37\x32\x34\x35\x30\x30\x37\x36\x30\x30\x31\x34\x36" + "\x32\x36\x30\x30\x30\x34\x30\x30\x30\x32\x32\x32\x33\x30\x30\x30" + "\x30\x34\x30\x30\x30\x32\x36\x32\x33\x35\x30\x30\x30\x30\x39\x30" + "\x30\x33\x30\x32\x34\x39\x30\x30\x30\x33\x32\x30\x30\x33\x31\x31" + "\x35\x30\x34\x30\x30\x33\x30\x30\x30\x33\x34\x33\x36\x33\x30\x30" + "\x30\x36\x30\x30\x30\x33\x37\x33\x1E\x20\x20\x20\x37\x30\x30\x30" + "\x31\x30\x37\x30\x20\x1E\x44\x4C\x43\x1E\x31\x39\x37\x30\x30\x34" + "\x32\x37\x30\x30\x30\x30\x30\x30\x2E\x30\x1E\x37\x30\x30\x33\x30" + "\x32\x73\x31\x39\x36\x38\x20\x20\x20\x20\x6D\x6F\x75\x61\x62\x20" + "\x20\x20\x20\x62\x20\x20\x20\x20\x30\x30\x30\x30\x30\x20\x65\x6E" + "\x67\x20\x20\x1E\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43" + "\x1F\x64\x44\x4C\x43\x1E\x30\x30\x1F\x61\x42\x53\x31\x32\x37\x35" + "\x2E\x35\x1F\x62\x2E\x4F\x32\x1E\x30\x30\x1F\x61\x32\x32\x32\x2F" + "\x2E\x31\x35\x2F\x30\x30\x37\x1E\x31\x30\x1F\x61\x4F\x62\x65\x72" + "\x73\x74\x2C\x20\x42\x72\x75\x63\x65\x2E\x1E\x30\x30\x1F\x61\x44" + "\x65\x75\x74\x65\x72\x6F\x6E\x6F\x6D\x79\x2E\x1F\x63\x54\x68\x6F" + "\x75\x67\x68\x74\x20\x71\x75\x65\x73\x74\x69\x6F\x6E\x73\x2C\x20" + "\x62\x79\x20\x44\x6F\x6E\x20\x44\x65\x57\x65\x6C\x74\x2E\x20\x53" + "\x75\x6D\x6D\x61\x72\x79\x20\x62\x79\x20\x41\x64\x61\x6D\x20\x43" + "\x6C\x61\x72\x6B\x65\x2E\x1E\x30\x20\x1F\x61\x4A\x6F\x70\x6C\x69" + "\x6E\x2C\x20\x4D\x6F\x2E\x2C\x1F\x62\x43\x6F\x6C\x6C\x65\x67\x65" + "\x20\x50\x72\x65\x73\x73\x1F\x63\x5B\x31\x39\x36\x38\x5D\x1E\x20" + "\x20\x1F\x61\x76\x69\x69\x69\x2C\x20\x34\x35\x32\x20\x70\x2E\x1F" + "\x62\x69\x6C\x6C\x75\x73\x2E\x2C\x20\x6D\x61\x70\x73\x2E\x1F\x63" + "\x32\x32\x20\x63\x6D\x2E\x1E\x20\x20\x1F\x61\x35\x2E\x39\x35\x1E" + "\x30\x20\x1F\x61\x42\x69\x62\x6C\x65\x20\x73\x74\x75\x64\x79\x20" + "\x74\x65\x78\x74\x62\x6F\x6F\x6B\x20\x73\x65\x72\x69\x65\x73\x1E" + "\x20\x20\x1F\x61\x42\x69\x62\x6C\x69\x6F\x67\x72\x61\x70\x68\x79" + "\x3A\x20\x70\x2E\x20\x34\x34\x39\x2D\x34\x35\x32\x2E\x1E\x20\x30" + "\x1F\x61\x42\x69\x62\x6C\x65\x2E\x20\x4F\x2E\x54\x2E\x20\x44\x65" + "\x75\x74\x65\x72\x6F\x6E\x6F\x6D\x79\x1F\x78\x53\x74\x75\x64\x79" + "\x1F\x78\x4F\x75\x74\x6C\x69\x6E\x65\x73\x2C\x20\x73\x79\x6C\x6C" + "\x61\x62\x69\x2C\x20\x65\x74\x63\x2E\x1E\x20\x20\x1F\x61\x20\x20" + "\x20\x37\x30\x30\x30\x31\x30\x37\x30\x20\x1E\x1D" +},{ + "\x30\x30\x38\x38\x38\x70\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x36" + "\x35\x20\x20\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x37\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x34\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x36\x30\x35\x30\x32\x30\x30\x30\x31\x35\x30\x30\x30\x37\x35" + "\x30\x34\x30\x30\x30\x31\x38\x30\x30\x30\x39\x30\x30\x34\x33\x30" + "\x30\x31\x32\x30\x30\x31\x30\x38\x30\x35\x30\x30\x30\x32\x30\x30" + "\x30\x31\x32\x30\x30\x38\x32\x30\x30\x31\x32\x30\x30\x31\x34\x30" + "\x31\x30\x30\x30\x30\x32\x39\x30\x30\x31\x35\x32\x32\x34\x35\x30" + "\x30\x39\x33\x30\x30\x31\x38\x31\x32\x36\x30\x30\x30\x35\x35\x30" + "\x30\x32\x37\x34\x33\x30\x30\x30\x30\x32\x38\x30\x30\x33\x32\x39" + "\x35\x30\x30\x30\x30\x38\x31\x30\x30\x33\x35\x37\x35\x30\x34\x30" + "\x30\x34\x31\x30\x30\x34\x33\x38\x36\x35\x30\x30\x30\x34\x35\x30" + "\x30\x34\x37\x39\x36\x35\x30\x30\x30\x32\x35\x30\x30\x35\x32\x34" + "\x36\x35\x31\x30\x30\x32\x32\x30\x30\x35\x34\x39\x38\x33\x30\x30" + "\x30\x33\x34\x30\x30\x35\x37\x31\x1E\x20\x20\x20\x37\x32\x30\x30" + "\x32\x35\x36\x35\x20\x1E\x44\x4C\x43\x1E\x31\x39\x37\x33\x30\x34" + "\x30\x39\x30\x30\x30\x30\x30\x30\x2E\x30\x1E\x37\x32\x30\x34\x31" + "\x38\x72\x31\x39\x37\x32\x31\x39\x30\x39\x6E\x79\x75\x20\x20\x20" + "\x20\x20\x20\x62\x20\x20\x20\x20\x30\x30\x30\x30\x30\x20\x65\x6E" + "\x67\x20\x20\x1E\x20\x20\x1F\x61\x30\x38\x33\x36\x39\x36\x38\x34" + "\x33\x33\x1E\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43\x1F" + "\x64\x44\x4C\x43\x1E\x20\x20\x1F\x61\x65\x2D\x67\x72\x2D\x2D\x2D" + "\x1E\x30\x30\x1F\x61\x42\x4C\x37\x38\x35\x1F\x62\x2E\x41\x33\x20" + "\x31\x39\x37\x32\x1E\x30\x30\x1F\x61\x32\x39\x32\x2F\x2E\x30\x38" + "\x1E\x31\x30\x1F\x61\x41\x64\x61\x6D\x2C\x20\x4A\x61\x6D\x65\x73" + "\x2C\x1F\x64\x31\x38\x36\x30\x2D\x31\x39\x30\x37\x2E\x1E\x31\x34" + "\x1F\x61\x54\x68\x65\x20\x72\x65\x6C\x69\x67\x69\x6F\x75\x73\x20" + "\x74\x65\x61\x63\x68\x65\x72\x73\x20\x6F\x66\x20\x47\x72\x65\x65" + "\x63\x65\x2E\x1F\x63\x45\x64\x69\x74\x65\x64\x20\x77\x69\x74\x68" + "\x20\x61\x20\x6D\x65\x6D\x6F\x69\x72\x2C\x20\x62\x79\x20\x68\x69" + "\x73\x20\x77\x69\x66\x65\x2C\x20\x41\x64\x65\x6C\x61\x20\x4D\x61" + "\x72\x69\x6F\x6E\x20\x41\x64\x61\x6D\x2E\x1E\x30\x20\x1F\x61\x46" + "\x72\x65\x65\x70\x6F\x72\x74\x2C\x20\x4E\x2E\x59\x2E\x2C\x1F\x62" + "\x42\x6F\x6F\x6B\x73\x20\x66\x6F\x72\x20\x4C\x69\x62\x72\x61\x72" + "\x69\x65\x73\x20\x50\x72\x65\x73\x73\x1F\x63\x5B\x31\x39\x37\x32" + "\x5D\x1E\x20\x20\x1F\x61\x78\x69\x78\x2C\x20\x6C\x76\x2C\x20\x34" + "\x36\x37\x20\x70\x2E\x1F\x63\x32\x32\x20\x63\x6D\x2E\x1E\x20\x20" + "\x1F\x61\x52\x65\x70\x72\x69\x6E\x74\x20\x6F\x66\x20\x74\x68\x65" + "\x20\x31\x39\x30\x39\x20\x65\x64\x2E\x2C\x20\x77\x68\x69\x63\x68" + "\x20\x77\x61\x73\x20\x69\x73\x73\x75\x65\x64\x20\x61\x73\x20\x74" + "\x68\x65\x20\x31\x39\x30\x34\x2D\x31\x39\x30\x36\x20\x47\x69\x66" + "\x66\x6F\x72\x64\x20\x6C\x65\x63\x74\x75\x72\x65\x73\x2E\x1E\x20" + "\x20\x1F\x61\x49\x6E\x63\x6C\x75\x64\x65\x73\x20\x62\x69\x62\x6C" + "\x69\x6F\x67\x72\x61\x70\x68\x69\x63\x61\x6C\x20\x72\x65\x66\x65" + "\x72\x65\x6E\x63\x65\x73\x2E\x1E\x20\x30\x1F\x61\x47\x72\x65\x65" + "\x6B\x20\x6C\x69\x74\x65\x72\x61\x74\x75\x72\x65\x1F\x78\x48\x69" + "\x73\x74\x6F\x72\x79\x20\x61\x6E\x64\x20\x63\x72\x69\x74\x69\x63" + "\x69\x73\x6D\x2E\x1E\x20\x30\x1F\x61\x50\x68\x69\x6C\x6F\x73\x6F" + "\x70\x68\x79\x2C\x20\x41\x6E\x63\x69\x65\x6E\x74\x2E\x1E\x20\x30" + "\x1F\x61\x47\x72\x65\x65\x63\x65\x1F\x78\x52\x65\x6C\x69\x67\x69" + "\x6F\x6E\x2E\x1E\x20\x30\x1F\x61\x47\x69\x66\x66\x6F\x72\x64\x20" + "\x6C\x65\x63\x74\x75\x72\x65\x73\x2C\x1F\x76\x31\x39\x30\x34\x2D" + "\x31\x39\x30\x36\x2E\x1E\x20\x20\x1F\x61\x20\x20\x20\x37\x32\x30" + "\x30\x32\x35\x36\x35\x20\x1E\x1D" +},{ + "\x30\x31\x31\x32\x36\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x36" + "\x35\x20\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x31\x33\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x31\x33" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x37\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x34\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x38\x34\x33\x30\x32\x30\x30\x30\x33\x31\x30\x30\x30\x37\x35" + "\x30\x34\x30\x30\x30\x31\x38\x30\x30\x31\x30\x36\x30\x35\x30\x30" + "\x30\x32\x31\x30\x30\x31\x32\x34\x30\x38\x32\x30\x30\x31\x38\x30" + "\x30\x31\x34\x35\x31\x30\x30\x30\x30\x34\x32\x30\x30\x31\x36\x33" + "\x32\x34\x35\x30\x31\x35\x38\x30\x30\x32\x30\x35\x32\x35\x30\x30" + "\x30\x33\x37\x30\x30\x33\x36\x33\x32\x36\x30\x30\x30\x34\x35\x30" + "\x30\x34\x30\x30\x33\x30\x30\x30\x30\x35\x30\x30\x30\x34\x34\x35" + "\x34\x34\x30\x30\x30\x33\x35\x30\x30\x34\x39\x35\x36\x33\x30\x30" + "\x30\x36\x34\x30\x30\x35\x33\x30\x36\x33\x30\x30\x30\x36\x34\x30" + "\x30\x35\x39\x34\x36\x33\x30\x30\x30\x36\x32\x30\x30\x36\x35\x38" + "\x36\x33\x30\x30\x30\x36\x33\x30\x30\x37\x32\x30\x37\x33\x30\x30" + "\x30\x36\x30\x30\x30\x37\x38\x33\x1E\x20\x20\x20\x38\x30\x30\x38" + "\x32\x33\x32\x39\x20\x1E\x44\x4C\x43\x1E\x31\x39\x38\x31\x30\x35" + "\x32\x38\x30\x30\x30\x30\x30\x30\x2E\x30\x1E\x38\x31\x30\x35\x32" + "\x36\x73\x31\x39\x38\x30\x20\x20\x20\x20\x63\x74\x75\x61\x66\x20" + "\x20\x20\x20\x20\x20\x20\x20\x20\x30\x30\x30\x31\x30\x20\x65\x6E" + "\x67\x20\x20\x1E\x20\x20\x1F\x61\x30\x38\x37\x39\x38\x33\x32\x33" + "\x35\x35\x20\x28\x70\x62\x6B\x2E\x29\x20\x3A\x1F\x63\x24\x34\x2E" + "\x39\x35\x1E\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43\x1F" + "\x64\x44\x4C\x43\x1E\x30\x30\x1F\x61\x42\x53\x31\x34\x33\x33\x1F" + "\x62\x2E\x53\x35\x20\x31\x39\x38\x30\x1E\x30\x30\x1F\x61\x32\x32" + "\x33\x2F\x2E\x32\x30\x37\x37\x1F\x32\x31\x39\x1E\x31\x30\x1F\x61" + "\x53\x6D\x69\x74\x68\x2C\x20\x47\x65\x6F\x72\x67\x65\x20\x41\x64" + "\x61\x6D\x2C\x1F\x63\x53\x69\x72\x2C\x1F\x64\x31\x38\x35\x36\x2D" + "\x31\x39\x34\x32\x2E\x1E\x31\x30\x1F\x61\x46\x6F\x75\x72\x20\x70" + "\x73\x61\x6C\x6D\x73\x20\x3A\x1F\x62\x58\x58\x49\x49\x49\x2C\x20" + "\x58\x58\x58\x56\x49\x2C\x20\x4C\x49\x49\x2C\x20\x43\x58\x58\x49" + "\x20\x2F\x1F\x63\x69\x6E\x74\x65\x72\x70\x72\x65\x74\x65\x64\x20" + "\x66\x6F\x72\x20\x70\x72\x61\x63\x74\x69\x63\x61\x6C\x20\x75\x73" + "\x65\x20\x62\x79\x20\x47\x65\x6F\x72\x67\x65\x20\x41\x64\x61\x6D" + "\x20\x53\x6D\x69\x74\x68\x20\x3B\x20\x69\x6E\x74\x72\x6F\x64\x75" + "\x63\x74\x69\x6F\x6E\x20\x62\x79\x20\x46\x2E\x46\x2E\x20\x42\x72" + "\x75\x63\x65\x20\x3B\x20\x69\x6C\x6C\x75\x73\x74\x72\x61\x74\x69" + "\x6F\x6E\x73\x20\x62\x79\x20\x52\x6F\x6E\x20\x4D\x63\x43\x61\x72" + "\x74\x79\x2E\x1E\x20\x20\x1F\x61\x53\x68\x65\x70\x68\x65\x72\x64" + "\x20\x69\x6C\x6C\x75\x73\x74\x72\x61\x74\x65\x64\x20\x63\x6C\x61" + "\x73\x73\x69\x63\x20\x65\x64\x2E\x1E\x30\x20\x1F\x61\x4E\x65\x77" + "\x20\x43\x61\x6E\x61\x61\x6E\x2C\x20\x43\x6F\x6E\x6E\x2E\x20\x3A" + "\x1F\x62\x4B\x65\x61\x74\x73\x20\x50\x75\x62\x2E\x2C\x1F\x63\x63" + "\x31\x39\x38\x30\x2E\x1E\x20\x20\x1F\x61\x38\x31\x20\x70\x2E\x2C" + "\x20\x5B\x35\x5D\x20\x6C\x65\x61\x76\x65\x73\x20\x6F\x66\x20\x70" + "\x6C\x61\x74\x65\x73\x20\x3A\x1F\x62\x69\x6C\x6C\x2E\x20\x3B\x1F" + "\x63\x32\x31\x20\x63\x6D\x2E\x1E\x20\x32\x1F\x61\x41\x20\x53\x68" + "\x65\x70\x68\x65\x72\x64\x20\x69\x6C\x6C\x75\x73\x74\x72\x61\x74" + "\x65\x64\x20\x63\x6C\x61\x73\x73\x69\x63\x1E\x30\x30\x1F\x61\x42" + "\x69\x62\x6C\x65\x2E\x1F\x70\x4F\x2E\x54\x2E\x1F\x70\x50\x73\x61" + "\x6C\x6D\x73\x20\x58\x58\x49\x49\x49\x1F\x78\x43\x72\x69\x74\x69" + "\x63\x69\x73\x6D\x2C\x20\x69\x6E\x74\x65\x72\x70\x72\x65\x74\x61" + "\x74\x69\x6F\x6E\x2C\x20\x65\x74\x63\x2E\x1E\x30\x30\x1F\x61\x42" + "\x69\x62\x6C\x65\x2E\x1F\x70\x4F\x2E\x54\x2E\x1F\x70\x50\x73\x61" + "\x6C\x6D\x73\x20\x58\x58\x58\x56\x49\x1F\x78\x43\x72\x69\x74\x69" + "\x63\x69\x73\x6D\x2C\x20\x69\x6E\x74\x65\x72\x70\x72\x65\x74\x61" + "\x74\x69\x6F\x6E\x2C\x20\x65\x74\x63\x2E\x1E\x30\x30\x1F\x61\x42" + "\x69\x62\x6C\x65\x2E\x1F\x70\x4F\x2E\x54\x2E\x1F\x70\x50\x73\x61" + "\x6C\x6D\x73\x20\x4C\x49\x49\x1F\x78\x43\x72\x69\x74\x69\x63\x69" + "\x73\x6D\x2C\x20\x69\x6E\x74\x65\x72\x70\x72\x65\x74\x61\x74\x69" + "\x6F\x6E\x2C\x20\x65\x74\x63\x2E\x1E\x30\x30\x1F\x61\x42\x69\x62" + "\x6C\x65\x2E\x1F\x70\x4F\x2E\x54\x2E\x1F\x70\x50\x73\x61\x6C\x6D" + "\x73\x20\x43\x58\x58\x49\x1F\x78\x43\x72\x69\x74\x69\x63\x69\x73" + "\x6D\x2C\x20\x69\x6E\x74\x65\x72\x70\x72\x65\x74\x61\x74\x69\x6F" + "\x6E\x2C\x20\x65\x74\x63\x2E\x1E\x30\x31\x1F\x61\x42\x69\x62\x6C" + "\x65\x2E\x1F\x70\x4F\x2E\x54\x2E\x1F\x70\x50\x73\x61\x6C\x6D\x73" + "\x20\x58\x58\x49\x49\x49\x2C\x20\x58\x58\x58\x56\x49\x2C\x20\x4C" + "\x49\x49\x2C\x20\x43\x58\x58\x49\x2E\x1F\x6C\x45\x6E\x67\x6C\x69" + "\x73\x68\x2E\x1E\x20\x20\x1F\x61\x20\x20\x20\x38\x30\x30\x38\x32" + "\x33\x32\x39\x20\x1E\x1D" +},{ + "\x30\x31\x34\x33\x33\x6E\x61\x73\x20\x20\x32\x32\x30\x30\x34\x32" + "\x31\x20\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x33\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x30\x30\x31\x30\x30\x30\x33\x31\x30" + "\x30\x30\x37\x31\x30\x32\x32\x30\x30\x31\x34\x30\x30\x31\x30\x32" + "\x30\x33\x30\x30\x30\x31\x31\x30\x30\x31\x31\x36\x30\x33\x32\x30" + "\x30\x31\x37\x30\x30\x31\x32\x37\x30\x33\x35\x30\x30\x32\x30\x30" + "\x30\x31\x34\x34\x30\x33\x35\x30\x30\x32\x37\x30\x30\x31\x36\x34" + "\x30\x34\x30\x30\x30\x39\x36\x30\x30\x31\x39\x31\x30\x34\x32\x30" + "\x30\x31\x33\x30\x30\x32\x38\x37\x30\x35\x30\x30\x30\x32\x30\x30" + "\x30\x33\x30\x30\x30\x37\x30\x30\x30\x31\x38\x30\x30\x33\x32\x30" + "\x30\x37\x32\x30\x30\x30\x39\x30\x30\x33\x33\x38\x30\x38\x32\x30" + "\x30\x31\x34\x30\x30\x33\x34\x37\x32\x31\x30\x30\x30\x31\x39\x30" + "\x30\x33\x36\x31\x32\x32\x32\x30\x30\x31\x39\x30\x30\x33\x38\x30" + "\x32\x34\x35\x30\x30\x32\x30\x30\x30\x33\x39\x39\x32\x36\x30\x30" + "\x30\x34\x33\x30\x30\x34\x31\x39\x32\x36\x35\x30\x30\x35\x38\x30" + "\x30\x34\x36\x32\x33\x30\x30\x30\x30\x31\x37\x30\x30\x35\x32\x30" + "\x33\x31\x30\x30\x30\x36\x32\x30\x30\x35\x33\x37\x33\x35\x30\x30" + "\x30\x31\x31\x30\x30\x35\x39\x39\x33\x36\x32\x30\x30\x33\x32\x30" + "\x30\x36\x31\x30\x35\x30\x30\x30\x30\x32\x34\x30\x30\x36\x34\x32" + "\x36\x35\x30\x30\x30\x34\x36\x30\x30\x36\x36\x36\x36\x35\x30\x30" + "\x30\x33\x36\x30\x30\x37\x31\x32\x36\x35\x30\x30\x30\x33\x39\x30" + "\x30\x37\x34\x38\x36\x35\x30\x30\x30\x33\x35\x30\x30\x37\x38\x37" + "\x36\x35\x30\x30\x30\x33\x33\x30\x30\x38\x32\x32\x37\x38\x30\x30" + "\x30\x38\x32\x30\x30\x38\x35\x35\x38\x35\x30\x30\x30\x37\x34\x30" + "\x30\x39\x33\x37\x1E\x41\x43\x44\x2D\x33\x38\x33\x37\x1E\x44\x4C" + "\x43\x1E\x31\x39\x39\x34\x30\x36\x31\x34\x30\x36\x35\x36\x31\x34" + "\x2E\x30\x1E\x39\x32\x30\x37\x32\x38\x63\x31\x39\x39\x32\x39\x39" + "\x39\x39\x63\x74\x75\x6D\x6E\x31\x70\x20\x20\x20\x20\x20\x20\x20" + "\x30\x20\x20\x20\x61\x30\x65\x6E\x67\x20\x64\x1E\x20\x20\x1F\x61" + "\x20\x20\x20\x39\x32\x36\x34\x36\x30\x36\x32\x20\x1F\x7A\x73\x6E" + "\x20\x39\x32\x30\x30\x34\x34\x33\x30\x20\x1E\x30\x20\x1F\x61\x31" + "\x30\x36\x34\x2D\x33\x39\x32\x33\x1E\x20\x20\x1F\x61\x49\x45\x52" + "\x4E\x45\x38\x1E\x20\x20\x1F\x61\x30\x30\x38\x31\x38\x37\x1F\x62" + "\x55\x53\x50\x53\x1E\x20\x20\x1F\x61\x28\x4F\x43\x6F\x4C\x43\x29" + "\x32\x36\x32\x37\x33\x32\x37\x35\x1E\x30\x30\x1F\x69\x6C\x63\x6D" + "\x61\x72\x63\x2F\x41\x51\x50\x2D\x36\x32\x38\x35\x2F\x4A\x45\x41" + "\x4E\x4E\x45\x1E\x20\x20\x1F\x61\x4E\x53\x44\x50\x1F\x63\x4E\x53" + "\x44\x50\x1F\x64\x57\x61\x55\x1F\x64\x4E\x49\x43\x1F\x64\x44\x4E" + "\x41\x4C\x1F\x64\x4F\x55\x43\x41\x1F\x64\x4E\x53\x54\x1F\x64\x44" + "\x4C\x43\x1F\x64\x4E\x53\x54\x1F\x64\x4E\x53\x44\x50\x1F\x64\x4E" + "\x53\x54\x1F\x64\x44\x4C\x43\x1F\x64\x49\x6E\x55\x1F\x64\x4D\x48" + "\x1F\x64\x4E\x53\x44\x50\x1F\x64\x4E\x1F\x64\x44\x4C\x43\x1F\x64" + "\x4D\x69\x55\x1E\x20\x20\x1F\x61\x6E\x73\x64\x70\x1F\x61\x6C\x63" + "\x1E\x30\x30\x1F\x61\x54\x4B\x35\x31\x30\x35\x2E\x35\x1F\x62\x2E" + "\x52\x34\x34\x38\x1E\x30\x20\x1F\x61\x54\x4B\x35\x31\x30\x35\x2E" + "\x35\x2E\x52\x34\x34\x38\x1E\x20\x30\x1F\x61\x58\x32\x30\x30\x1E" + "\x30\x30\x1F\x61\x33\x38\x34\x2E\x33\x1F\x32\x32\x30\x1E\x30\x20" + "\x1F\x61\x49\x6E\x74\x65\x72\x6E\x65\x74\x20\x77\x6F\x72\x6C\x64" + "\x1E\x20\x30\x1F\x61\x49\x6E\x74\x65\x72\x6E\x65\x74\x20\x77\x6F" + "\x72\x6C\x64\x1E\x30\x30\x1F\x61\x49\x6E\x74\x65\x72\x6E\x65\x74" + "\x20\x77\x6F\x72\x6C\x64\x2E\x1E\x20\x20\x1F\x61\x57\x65\x73\x74" + "\x70\x6F\x72\x74\x2C\x20\x43\x54\x20\x3A\x1F\x62\x4D\x65\x63\x6B" + "\x6C\x65\x72\x20\x43\x6F\x72\x70\x2E\x2C\x1F\x63\x63\x31\x39\x39" + "\x32\x2D\x1E\x20\x20\x1F\x61\x4D\x65\x63\x6B\x6C\x65\x72\x20\x43" + "\x6F\x72\x70\x2E\x2C\x20\x31\x31\x20\x46\x65\x72\x72\x79\x20\x4C" + "\x61\x6E\x65\x20\x57\x65\x73\x74\x2C\x20\x57\x65\x73\x74\x70\x6F" + "\x72\x74\x2C\x20\x43\x54\x20\x30\x36\x38\x38\x30\x1E\x20\x20\x1F" + "\x61\x76\x2E\x20\x3B\x1F\x63\x32\x38\x20\x63\x6D\x2E\x1E\x20\x20" + "\x1F\x61\x4D\x6F\x6E\x74\x68\x6C\x79\x20\x28\x65\x78\x63\x65\x70" + "\x74\x20\x4A\x61\x6E\x2E\x2F\x46\x65\x62\x2E\x2C\x20\x4A\x75\x6C" + "\x79\x2F\x41\x75\x67\x2E\x2C\x20\x4E\x6F\x76\x2E\x2F\x44\x65\x63" + "\x2E\x20\x63\x6F\x6D\x62\x69\x6E\x65\x64\x29\x1E\x20\x20\x1F\x61" + "\x24\x39\x37\x2E\x30\x30\x1E\x30\x20\x1F\x61\x56\x6F\x6C\x2E\x20" + "\x33\x2C\x20\x6E\x6F\x2E\x20\x37\x20\x28\x53\x65\x70\x74\x2E\x20" + "\x31\x39\x39\x32\x29\x2D\x1E\x20\x20\x1F\x61\x54\x69\x74\x6C\x65" + "\x20\x66\x72\x6F\x6D\x20\x63\x61\x70\x74\x69\x6F\x6E\x2E\x1E\x20" + "\x30\x1F\x61\x49\x6E\x74\x65\x72\x6E\x65\x74\x20\x28\x43\x6F\x6D" + "\x70\x75\x74\x65\x72\x20\x6E\x65\x74\x77\x6F\x72\x6B\x29\x1F\x78" + "\x50\x65\x72\x69\x6F\x64\x69\x63\x61\x6C\x73\x2E\x1E\x20\x30\x1F" + "\x61\x43\x6F\x6D\x70\x75\x74\x65\x72\x20\x6E\x65\x74\x77\x6F\x72" + "\x6B\x73\x1F\x78\x50\x65\x72\x69\x6F\x64\x69\x63\x61\x6C\x73\x2E" + "\x1E\x20\x30\x1F\x61\x49\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E" + "\x20\x6E\x65\x74\x77\x6F\x72\x6B\x73\x1F\x78\x50\x65\x72\x69\x6F" + "\x64\x69\x63\x61\x6C\x73\x2E\x1E\x20\x32\x1F\x61\x43\x6F\x6D\x70" + "\x75\x74\x65\x72\x20\x53\x79\x73\x74\x65\x6D\x73\x1F\x78\x70\x65" + "\x72\x69\x6F\x64\x69\x63\x61\x6C\x73\x2E\x1E\x20\x32\x1F\x61\x4F" + "\x6E\x6C\x69\x6E\x65\x20\x53\x79\x73\x74\x65\x6D\x73\x1F\x78\x70" + "\x65\x72\x69\x6F\x64\x69\x63\x61\x6C\x73\x2E\x1E\x30\x30\x1F\x74" + "\x52\x65\x73\x65\x61\x72\x63\x68\x20\x26\x20\x65\x64\x75\x63\x61" + "\x74\x69\x6F\x6E\x20\x6E\x65\x74\x77\x6F\x72\x6B\x69\x6E\x67\x1F" + "\x78\x31\x30\x35\x31\x2D\x34\x37\x39\x31\x1F\x77\x28\x44\x4C\x43" + "\x29\x20\x20\x20\x39\x30\x36\x34\x36\x36\x31\x33\x1F\x77\x28\x4F" + "\x43\x6F\x4C\x43\x29\x32\x31\x39\x37\x34\x34\x34\x38\x1E\x20\x20" + "\x1F\x61\x44\x4C\x43\x1F\x61\x44\x4E\x41\x4C\x1F\x61\x44\x4E\x47" + "\x41\x1F\x61\x49\x6E\x55\x1F\x61\x4D\x42\x43\x6F\x1F\x61\x4D\x48" + "\x2D\x45\x64\x1F\x61\x4D\x64\x42\x4A\x1F\x61\x4D\x69\x55\x1F\x61" + "\x4D\x6F\x4B\x4C\x1F\x61\x4E\x1F\x61\x4E\x49\x43\x1F\x61\x54\x78" + "\x48\x52\x1F\x61\x57\x61\x55\x1E\x1D" +},{ + "\x30\x31\x33\x33\x30\x6E\x61\x73\x20\x20\x32\x32\x30\x30\x33\x37" + "\x33\x35\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x33\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x30\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x30\x37\x31\x30\x32\x32\x30\x30\x32\x35\x30\x30\x30\x38\x38" + "\x30\x33\x35\x30\x30\x32\x30\x30\x30\x31\x31\x33\x30\x33\x35\x30" + "\x30\x32\x37\x30\x30\x31\x33\x33\x30\x34\x30\x30\x30\x32\x39\x30" + "\x30\x31\x36\x30\x30\x34\x32\x30\x30\x31\x36\x30\x30\x31\x38\x39" + "\x30\x34\x33\x30\x30\x31\x32\x30\x30\x32\x30\x35\x30\x35\x35\x30" + "\x30\x31\x32\x30\x30\x32\x31\x37\x30\x38\x32\x30\x30\x31\x32\x30" + "\x30\x32\x32\x39\x31\x33\x30\x30\x30\x33\x35\x30\x30\x32\x34\x31" + "\x32\x31\x30\x30\x30\x32\x37\x30\x30\x32\x37\x36\x32\x32\x32\x30" + "\x30\x32\x39\x30\x30\x33\x30\x33\x32\x34\x35\x30\x30\x31\x37\x30" + "\x30\x33\x33\x32\x32\x36\x30\x30\x30\x35\x34\x30\x30\x33\x34\x39" + "\x32\x36\x35\x30\x30\x36\x39\x30\x30\x34\x30\x33\x33\x30\x30\x30" + "\x30\x32\x35\x30\x30\x34\x37\x32\x33\x31\x30\x30\x30\x31\x32\x30" + "\x30\x34\x39\x37\x33\x35\x30\x30\x30\x32\x31\x30\x30\x35\x30\x39" + "\x33\x36\x32\x30\x30\x33\x33\x30\x30\x35\x33\x30\x35\x30\x30\x30" + "\x30\x32\x34\x30\x30\x35\x36\x33\x35\x38\x30\x30\x30\x35\x38\x30" + "\x30\x35\x38\x37\x37\x38\x30\x30\x30\x38\x33\x30\x30\x36\x34\x35" + "\x37\x38\x30\x30\x30\x35\x31\x30\x30\x37\x32\x38\x37\x38\x35\x30" + "\x30\x38\x33\x30\x30\x37\x37\x39\x37\x38\x37\x30\x30\x39\x34\x30" + "\x30\x38\x36\x32\x1E\x41\x43\x44\x2D\x33\x37\x39\x39\x1E\x44\x4C" + "\x43\x1E\x31\x39\x39\x34\x30\x36\x31\x34\x30\x39\x30\x35\x31\x34" + "\x2E\x30\x1E\x39\x32\x30\x37\x32\x33\x63\x31\x39\x39\x31\x39\x39" + "\x39\x39\x6F\x6E\x63\x6D\x72\x34\x70\x20\x20\x20\x20\x20\x20\x20" + "\x30\x20\x20\x20\x61\x30\x65\x6E\x67\x20\x64\x1E\x20\x20\x1F\x61" + "\x63\x6E\x20\x39\x32\x30\x33\x31\x36\x34\x31\x20\x1E\x30\x20\x1F" + "\x61\x31\x31\x38\x37\x2D\x37\x30\x38\x31\x1F\x79\x30\x30\x32\x35" + "\x2D\x39\x35\x33\x35\x1E\x20\x20\x1F\x61\x28\x4F\x43\x6F\x4C\x43" + "\x29\x32\x36\x32\x34\x34\x38\x34\x34\x1E\x30\x30\x1F\x69\x6C\x63" + "\x6D\x61\x72\x63\x2F\x41\x51\x46\x2D\x32\x38\x39\x36\x2F\x4A\x45" + "\x41\x4E\x4E\x45\x1E\x20\x20\x1F\x61\x43\x61\x4F\x4F\x43\x4D\x1F" + "\x62\x65\x6E\x67\x1F\x63\x43\x61\x4F\x4F\x4E\x4C\x1F\x64\x49\x6E" + "\x55\x1E\x20\x20\x1F\x61\x6E\x6C\x63\x1F\x61\x69\x73\x64\x73\x2F" + "\x63\x1E\x20\x20\x1F\x61\x6E\x2D\x63\x6E\x2D\x2D\x2D\x1E\x20\x32" + "\x1F\x61\x48\x44\x39\x36\x39\x36\x2A\x1E\x31\x20\x1F\x61\x30\x30" + "\x34\x1F\x32\x31\x32\x1E\x30\x20\x1F\x61\x49\x6E\x66\x6F\x20\x43" + "\x61\x6E\x61\x64\x61\x20\x28\x44\x6F\x77\x6E\x73\x76\x69\x65\x77" + "\x2C\x20\x4F\x6E\x74\x2E\x29\x2E\x1E\x30\x20\x1F\x61\x49\x6E\x66" + "\x6F\x20\x43\x61\x6E\x2E\x1F\x62\x28\x44\x6F\x77\x6E\x73\x76\x69" + "\x65\x77\x29\x1E\x20\x30\x1F\x61\x49\x6E\x66\x6F\x20\x43\x61\x6E" + "\x61\x64\x61\x1F\x62\x28\x44\x6F\x77\x6E\x73\x76\x69\x65\x77\x29" + "\x1E\x30\x30\x1F\x61\x49\x6E\x66\x6F\x20\x43\x61\x6E\x61\x64\x61" + "\x2E\x1E\x20\x20\x1F\x61\x44\x6F\x77\x6E\x73\x76\x69\x65\x77\x2C" + "\x20\x4F\x6E\x74\x2E\x20\x3A\x1F\x62\x4C\x61\x75\x72\x65\x6E\x74" + "\x69\x61\x6E\x20\x54\x65\x63\x68\x6E\x6F\x6D\x65\x64\x69\x61\x2C" + "\x1F\x63\x31\x39\x39\x31\x2D\x1E\x20\x20\x1F\x61\x4C\x61\x75\x72" + "\x65\x6E\x74\x69\x61\x6E\x20\x54\x65\x63\x68\x6E\x6F\x6D\x65\x64" + "\x69\x61\x2C\x20\x35\x30\x31\x20\x4F\x61\x6B\x64\x61\x6C\x65\x20" + "\x52\x64\x2E\x2C\x20\x44\x6F\x77\x6E\x73\x76\x69\x65\x77\x2C\x20" + "\x4F\x6E\x74\x2E\x20\x4D\x33\x4E\x20\x31\x57\x37\x1E\x20\x20\x1F" + "\x61\x76\x2E\x20\x3A\x1F\x62\x69\x6C\x6C\x2E\x20\x3B\x1F\x63\x34" + "\x30\x20\x63\x6D\x2E\x1E\x20\x20\x1F\x61\x4D\x6F\x6E\x74\x68\x6C" + "\x79\x1E\x20\x20\x1F\x61\x24\x35\x30\x2E\x30\x30\x20\x70\x65\x72" + "\x20\x79\x65\x61\x72\x2E\x1E\x30\x20\x1F\x61\x56\x6F\x6C\x2E\x20" + "\x31\x36\x2C\x20\x6E\x6F\x2E\x20\x39\x20\x28\x53\x65\x70\x74\x2E" + "\x20\x31\x39\x39\x31\x29\x2D\x1E\x20\x20\x1F\x61\x54\x69\x74\x6C" + "\x65\x20\x66\x72\x6F\x6D\x20\x63\x61\x70\x74\x69\x6F\x6E\x2E\x1E" + "\x20\x20\x1F\x61\x49\x6E\x63\x6C\x75\x64\x65\x73\x3A\x20\x4E\x65" + "\x74\x77\x6F\x72\x6B\x20\x77\x6F\x72\x6C\x64\x20\x43\x61\x6E\x61" + "\x64\x61\x2C\x20\x53\x65\x70\x74\x2E\x20\x31\x39\x39\x31\x2D\x4A" + "\x61\x6E\x2E\x20\x31\x39\x39\x32\x2E\x1E\x30\x30\x1F\x74\x43\x6F" + "\x6D\x70\x75\x74\x65\x72\x20\x64\x61\x74\x61\x1F\x78\x30\x33\x38" + "\x33\x2D\x37\x33\x31\x39\x1F\x77\x28\x43\x61\x4F\x4F\x4E\x4C\x29" + "\x37\x37\x30\x33\x30\x38\x33\x31\x37\x1F\x77\x28\x4F\x43\x6F\x4C" + "\x43\x29\x31\x31\x34\x31\x36\x34\x37\x39\x1F\x77\x28\x44\x4C\x43" + "\x29\x63\x6E\x20\x37\x37\x30\x33\x30\x38\x33\x31\x1E\x30\x35\x1F" + "\x74\x49\x2E\x54\x2E\x20\x6D\x61\x67\x61\x7A\x69\x6E\x65\x20\x28" + "\x54\x6F\x72\x6F\x6E\x74\x6F\x2C\x20\x4F\x6E\x74\x2E\x29\x1F\x77" + "\x28\x4F\x43\x6F\x4C\x43\x29\x32\x37\x36\x39\x39\x30\x36\x36\x1E" + "\x30\x31\x1F\x74\x4E\x65\x74\x77\x6F\x72\x6B\x20\x77\x6F\x72\x6C" + "\x64\x20\x43\x61\x6E\x61\x64\x61\x1F\x67\x46\x65\x62\x2E\x20\x31" + "\x39\x39\x32\x1F\x78\x31\x31\x38\x37\x2D\x32\x39\x38\x35\x1F\x77" + "\x28\x4F\x43\x6F\x4C\x43\x29\x32\x35\x33\x31\x34\x30\x31\x32\x1F" + "\x77\x28\x43\x61\x4F\x4F\x4E\x4C\x29\x39\x32\x30\x33\x30\x35\x37" + "\x32\x35\x1E\x31\x20\x1F\x74\x4E\x65\x74\x77\x6F\x72\x6B\x20\x77" + "\x6F\x72\x6C\x64\x20\x43\x61\x6E\x61\x64\x61\x1F\x67\x53\x65\x70" + "\x74\x2E\x20\x31\x39\x39\x31\x2D\x4A\x61\x6E\x2E\x20\x31\x39\x39" + "\x32\x1F\x78\x31\x31\x38\x37\x2D\x32\x39\x38\x35\x1F\x77\x28\x4F" + "\x43\x6F\x4C\x43\x29\x32\x35\x33\x31\x34\x30\x31\x32\x1F\x77\x28" + "\x43\x61\x4F\x4F\x4E\x4C\x29\x39\x32\x30\x33\x30\x35\x37\x32\x35" + "\x1E\x1D" +},{ + "\x30\x30\x38\x30\x33\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x38" + "\x39\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x33\x30\x30\x30\x34\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x31\x33\x30\x30\x38\x30" + "\x30\x34\x31\x30\x30\x30\x33\x30\x30\x31\x30\x30\x30\x31\x37\x30" + "\x30\x30\x37\x31\x30\x32\x30\x30\x30\x31\x35\x30\x30\x30\x38\x38" + "\x30\x33\x35\x30\x30\x32\x37\x30\x30\x31\x30\x33\x30\x34\x30\x30" + "\x30\x31\x33\x30\x30\x31\x33\x30\x30\x34\x33\x30\x30\x31\x32\x30" + "\x30\x31\x34\x33\x30\x35\x30\x30\x30\x32\x38\x30\x30\x31\x35\x35" + "\x30\x38\x32\x30\x30\x31\x38\x30\x30\x31\x38\x33\x31\x30\x30\x30" + "\x30\x32\x35\x30\x30\x32\x30\x31\x32\x34\x35\x30\x30\x39\x35\x30" + "\x30\x32\x32\x36\x32\x35\x30\x30\x30\x31\x32\x30\x30\x33\x32\x31" + "\x32\x36\x30\x30\x30\x33\x34\x30\x30\x33\x33\x33\x32\x36\x33\x30" + "\x30\x30\x39\x30\x30\x33\x36\x37\x33\x30\x30\x30\x30\x31\x31\x30" + "\x30\x33\x37\x36\x35\x30\x30\x30\x30\x32\x30\x30\x30\x33\x38\x37" + "\x36\x33\x30\x30\x30\x33\x38\x30\x30\x34\x30\x37\x36\x30\x30\x30" + "\x30\x32\x32\x30\x30\x34\x34\x35\x36\x30\x30\x30\x30\x31\x35\x30" + "\x30\x34\x36\x37\x36\x35\x30\x30\x30\x33\x31\x30\x30\x34\x38\x32" + "\x1E\x41\x43\x44\x2D\x33\x37\x39\x32\x1E\x44\x4C\x43\x1E\x31\x39" + "\x39\x33\x31\x32\x31\x35\x30\x38\x34\x36\x30\x35\x2E\x37\x1E\x39" + "\x33\x31\x32\x30\x36\x73\x31\x39\x39\x33\x20\x20\x20\x20\x6E\x79" + "\x75\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x30\x30\x31\x20" + "\x30\x20\x65\x6E\x67\x20\x20\x1E\x20\x20\x1F\x61\x20\x20\x20\x39" + "\x33\x30\x34\x37\x39\x39\x32\x20\x1E\x20\x20\x1F\x61\x31\x35\x36" + "\x32\x38\x32\x37\x35\x34\x35\x1E\x30\x30\x1F\x69\x6C\x63\x6D\x61" + "\x72\x63\x2F\x41\x52\x55\x2D\x32\x33\x36\x34\x2F\x53\x54\x45\x56" + "\x45\x53\x1E\x20\x20\x1F\x61\x44\x4C\x43\x1F\x63\x44\x4C\x43\x1E" + "\x20\x20\x1F\x61\x6E\x2D\x75\x73\x2D\x2D\x2D\x1E\x30\x30\x1F\x61" + "\x50\x4E\x31\x39\x39\x32\x2E\x37\x37\x2E\x54\x36\x33\x1F\x62\x43" + "\x33\x37\x20\x31\x39\x39\x33\x1E\x30\x30\x1F\x61\x37\x39\x31\x2E" + "\x34\x35\x2F\x37\x32\x1F\x32\x32\x30\x1E\x31\x20\x1F\x61\x43\x61" + "\x72\x74\x65\x72\x2C\x20\x42\x69\x6C\x6C\x2C\x1F\x64\x31\x39\x34" + "\x39\x2D\x1E\x31\x34\x1F\x61\x54\x68\x65\x20\x6C\x61\x74\x65\x20" + "\x73\x68\x69\x66\x74\x20\x3A\x1F\x62\x4C\x65\x74\x74\x65\x72\x6D" + "\x61\x6E\x2C\x20\x4C\x65\x6E\x6F\x2C\x20\x61\x6E\x64\x20\x74\x68" + "\x65\x20\x6E\x65\x74\x77\x6F\x72\x6B\x20\x62\x61\x74\x74\x6C\x65" + "\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x6E\x69\x67\x68\x74\x20\x2F" + "\x1F\x63\x62\x79\x20\x42\x69\x6C\x6C\x20\x43\x61\x72\x74\x65\x72" + "\x2E\x1E\x20\x20\x1F\x61\x31\x73\x74\x20\x65\x64\x2E\x1E\x20\x20" + "\x1F\x61\x4E\x65\x77\x20\x59\x6F\x72\x6B\x20\x3A\x1F\x62\x48\x79" + "\x70\x65\x72\x69\x6F\x6E\x2C\x1F\x63\x63\x31\x39\x39\x33\x2E\x1E" + "\x20\x20\x1F\x61\x39\x34\x30\x32\x1E\x20\x20\x1F\x61\x70\x2E\x20" + "\x63\x6D\x2E\x1E\x20\x20\x1F\x61\x49\x6E\x63\x6C\x75\x64\x65\x73" + "\x20\x69\x6E\x64\x65\x78\x2E\x1E\x30\x30\x1F\x61\x54\x6F\x6E\x69" + "\x67\x68\x74\x20\x73\x68\x6F\x77\x20\x28\x54\x65\x6C\x65\x76\x69" + "\x73\x69\x6F\x6E\x20\x70\x72\x6F\x67\x72\x61\x6D\x29\x1E\x31\x30" + "\x1F\x61\x4C\x65\x74\x74\x65\x72\x6D\x61\x6E\x2C\x20\x44\x61\x76" + "\x69\x64\x2E\x1E\x31\x30\x1F\x61\x4C\x65\x6E\x6F\x2C\x20\x4A\x61" + "\x79\x2E\x1E\x20\x30\x1F\x61\x54\x61\x6C\x6B\x20\x73\x68\x6F\x77" + "\x73\x1F\x7A\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73" + "\x2E\x1E\x1D" +},{ + "\x30\x30\x37\x36\x36\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x36" + "\x35\x38\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x30\x39" + "\x30\x30\x38\x30\x30\x34\x31\x30\x30\x30\x32\x36\x30\x31\x30\x30" + "\x30\x31\x37\x30\x30\x30\x36\x37\x30\x32\x30\x30\x30\x31\x35\x30" + "\x30\x30\x38\x34\x30\x33\x35\x30\x30\x32\x39\x30\x30\x30\x39\x39" + "\x30\x34\x30\x30\x30\x31\x33\x30\x30\x31\x32\x38\x30\x35\x30\x30" + "\x30\x32\x39\x30\x30\x31\x34\x31\x30\x38\x32\x30\x30\x31\x36\x30" + "\x30\x31\x37\x30\x32\x34\x35\x30\x30\x37\x36\x30\x30\x31\x38\x36" + "\x32\x35\x30\x30\x30\x31\x36\x30\x30\x32\x36\x32\x32\x36\x30\x30" + "\x30\x35\x36\x30\x30\x32\x37\x38\x32\x36\x33\x30\x30\x30\x39\x30" + "\x30\x33\x33\x34\x33\x30\x30\x30\x30\x31\x31\x30\x30\x33\x34\x33" + "\x34\x34\x30\x30\x30\x33\x32\x30\x30\x33\x35\x34\x35\x30\x30\x30" + "\x30\x32\x30\x30\x30\x33\x38\x36\x36\x35\x30\x30\x30\x33\x32\x30" + "\x30\x34\x30\x36\x36\x35\x30\x30\x30\x31\x39\x30\x30\x34\x33\x38" + "\x37\x30\x30\x30\x30\x32\x35\x30\x30\x34\x35\x37\x37\x30\x30\x30" + "\x30\x31\x38\x30\x30\x34\x38\x32\x1E\x41\x43\x44\x2D\x33\x36\x36" + "\x35\x1E\x31\x39\x39\x33\x30\x37\x33\x30\x30\x39\x32\x30\x30\x34" + "\x2E\x31\x1E\x39\x33\x30\x37\x32\x31\x73\x31\x39\x39\x33\x20\x20" + "\x20\x20\x6E\x6A\x75\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20" + "\x30\x30\x31\x20\x30\x20\x65\x6E\x67\x20\x20\x1E\x20\x20\x1F\x61" + "\x20\x20\x20\x39\x33\x30\x33\x30\x37\x37\x35\x20\x1E\x20\x20\x1F" + "\x61\x30\x31\x33\x32\x38\x39\x36\x36\x31\x33\x1E\x30\x30\x1F\x69" + "\x6C\x63\x6D\x61\x72\x63\x2F\x41\x52\x49\x2D\x33\x38\x30\x34\x2F" + "\x4A\x55\x4C\x49\x41\x4E\x4E\x45\x1E\x20\x20\x1F\x61\x44\x4C\x43" + "\x1F\x63\x44\x4C\x43\x1E\x30\x30\x1F\x61\x54\x4B\x35\x31\x30\x35" + "\x2E\x38\x37\x35\x2E\x49\x35\x37\x1F\x62\x49\x35\x36\x20\x31\x39" + "\x39\x33\x1E\x30\x30\x1F\x61\x33\x38\x34\x2E\x33\x2F\x34\x1F\x32" + "\x32\x30\x1E\x30\x30\x1F\x61\x49\x6E\x74\x65\x72\x6E\x65\x74\x20" + "\x3A\x1F\x62\x6D\x61\x69\x6C\x69\x6E\x67\x20\x6C\x69\x73\x74\x73" + "\x20\x2F\x1F\x63\x65\x64\x69\x74\x65\x64\x20\x62\x79\x20\x45\x64" + "\x77\x61\x72\x64\x20\x54\x2E\x4C\x2E\x20\x48\x61\x72\x64\x69\x65" + "\x2C\x20\x56\x69\x76\x69\x61\x6E\x20\x4E\x65\x6F\x75\x2E\x1E\x20" + "\x20\x1F\x61\x55\x70\x64\x61\x74\x65\x64\x20\x65\x64\x2E\x1E\x20" + "\x20\x1F\x61\x45\x6E\x67\x6C\x65\x77\x6F\x6F\x64\x20\x43\x6C\x69" + "\x66\x66\x73\x2C\x20\x4E\x2E\x4A\x2E\x20\x3A\x1F\x62\x50\x54\x52" + "\x20\x50\x72\x65\x6E\x74\x69\x63\x65\x20\x48\x61\x6C\x6C\x2C\x1F" + "\x63\x31\x39\x39\x33\x2E\x1E\x20\x20\x1F\x61\x39\x33\x30\x38\x1E" + "\x20\x20\x1F\x61\x70\x2E\x20\x63\x6D\x2E\x1E\x20\x30\x1F\x61\x49" + "\x6E\x74\x65\x72\x6E\x65\x74\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74" + "\x69\x6F\x6E\x20\x73\x65\x72\x69\x65\x73\x1E\x20\x20\x1F\x61\x49" + "\x6E\x63\x6C\x75\x64\x65\x73\x20\x69\x6E\x64\x65\x78\x2E\x1E\x20" + "\x30\x1F\x61\x49\x6E\x74\x65\x72\x6E\x65\x74\x20\x28\x43\x6F\x6D" + "\x70\x75\x74\x65\x72\x20\x6E\x65\x74\x77\x6F\x72\x6B\x29\x1E\x20" + "\x30\x1F\x61\x4D\x61\x69\x6C\x69\x6E\x67\x20\x6C\x69\x73\x74\x73" + "\x2E\x1E\x31\x30\x1F\x61\x48\x61\x72\x64\x69\x65\x2C\x20\x45\x64" + "\x77\x61\x72\x64\x20\x54\x2E\x20\x4C\x2E\x1E\x31\x30\x1F\x61\x4E" + "\x65\x6F\x75\x2C\x20\x56\x69\x76\x69\x61\x6E\x2E\x1E\x1D" +},{ + "\x30\x31\x33\x32\x34\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x38" + "\x39\x49\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x38\x30\x30\x34\x31\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x35\x30\x30\x31\x30\x30" + "\x30\x31\x33\x30\x30\x30\x36\x37\x30\x33\x37\x30\x30\x32\x33\x30" + "\x30\x30\x38\x30\x30\x34\x33\x30\x30\x31\x32\x30\x30\x31\x30\x33" + "\x30\x37\x34\x30\x30\x31\x39\x30\x30\x31\x31\x35\x30\x38\x36\x30" + "\x30\x32\x32\x30\x30\x31\x33\x34\x30\x34\x39\x30\x30\x30\x39\x30" + "\x30\x31\x35\x36\x32\x34\x35\x30\x30\x36\x32\x30\x30\x31\x36\x35" + "\x32\x36\x30\x30\x31\x34\x35\x30\x30\x32\x32\x37\x33\x30\x30\x30" + "\x30\x32\x35\x30\x30\x33\x37\x32\x35\x30\x30\x30\x30\x38\x30\x30" + "\x30\x33\x39\x37\x35\x30\x30\x30\x32\x32\x31\x30\x30\x34\x37\x37" + "\x35\x30\x30\x30\x30\x35\x35\x30\x30\x36\x39\x38\x35\x30\x30\x30" + "\x30\x32\x31\x30\x30\x37\x35\x33\x35\x30\x30\x30\x30\x32\x32\x30" + "\x30\x37\x37\x34\x36\x31\x30\x30\x30\x36\x31\x30\x30\x37\x39\x36" + "\x36\x35\x30\x30\x30\x34\x33\x30\x30\x38\x35\x37\x36\x35\x30\x30" + "\x30\x34\x35\x30\x30\x39\x30\x30\x37\x30\x30\x30\x30\x32\x31\x30" + "\x30\x39\x34\x35\x37\x31\x30\x30\x30\x36\x38\x30\x30\x39\x36\x36" + "\x1E\x41\x43\x44\x2D\x32\x37\x32\x38\x1E\x39\x31\x30\x35\x31\x34" + "\x73\x31\x39\x38\x34\x20\x20\x20\x20\x6E\x79\x75\x20\x20\x20\x20" + "\x20\x20\x72\x20\x20\x20\x66\x30\x30\x31\x30\x30\x20\x65\x6E\x67" + "\x20\x64\x1E\x31\x39\x39\x31\x30\x35\x31\x39\x31\x34\x34\x35\x35" + "\x31\x2E\x30\x1E\x20\x20\x1F\x6F\x32\x33\x37\x34\x30\x30\x30\x32" + "\x1E\x20\x20\x1F\x61\x45\x44\x20\x45\x44\x20\x32\x38\x39\x34\x35" + "\x39\x1F\x62\x45\x52\x49\x43\x1E\x20\x20\x1F\x61\x6E\x2D\x75\x73" + "\x2D\x2D\x2D\x1E\x20\x20\x1F\x61\x30\x34\x36\x36\x2D\x41\x2D\x30" + "\x33\x20\x28\x4D\x46\x29\x1E\x30\x20\x1F\x61\x45\x44\x20\x31\x2E" + "\x33\x31\x30\x2F\x32\x3A\x32\x38\x39\x34\x35\x39\x1E\x20\x20\x1F" + "\x61\x44\x52\x55\x47\x1E\x30\x30\x1F\x61\x54\x65\x63\x68\x6E\x6F" + "\x6C\x6F\x67\x79\x20\x70\x72\x6F\x67\x72\x61\x6D\x73\x20\x74\x68" + "\x61\x74\x20\x77\x6F\x72\x6B\x20\x2F\x1F\x63\x4D\x69\x63\x68\x61" + "\x65\x6C\x20\x42\x2E\x20\x57\x65\x62\x62\x2C\x20\x65\x64\x69\x74" + "\x6F\x72\x2E\x1E\x30\x20\x1F\x61\x4E\x65\x77\x20\x59\x6F\x72\x6B" + "\x2C\x20\x4E\x2E\x59\x2E\x20\x3A\x1F\x62\x54\x65\x63\x68\x6E\x6F" + "\x6C\x6F\x67\x79\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x4E\x44\x4E" + "\x20\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x49\x6E\x73\x74\x69\x74" + "\x75\x74\x65\x20\x66\x6F\x72\x20\x55\x72\x62\x61\x6E\x20\x61\x6E" + "\x64\x20\x4D\x69\x6E\x6F\x72\x69\x74\x79\x20\x45\x64\x75\x63\x61" + "\x74\x69\x6F\x6E\x2C\x20\x54\x65\x61\x63\x68\x65\x72\x73\x20\x43" + "\x6F\x6C\x6C\x65\x67\x65\x2C\x20\x43\x6F\x6C\x75\x6D\x62\x69\x61" + "\x20\x55\x6E\x69\x76\x65\x72\x73\x69\x74\x79\x2C\x1F\x63\x5B\x31" + "\x39\x38\x34\x5D\x1E\x20\x20\x1F\x61\x37\x32\x2C\x20\x5B\x31\x5D" + "\x20\x70\x2E\x20\x3B\x1F\x63\x32\x38\x20\x63\x6D\x2E\x1E\x20\x20" + "\x1F\x61\x22\x53\x70\x6F\x6E\x73\x20\x61\x67\x65\x6E\x63\x79\x20" + "\x4F\x66\x66\x69\x63\x65\x20\x6F\x66\x20\x45\x64\x75\x63\x61\x74" + "\x69\x6F\x6E\x61\x6C\x20\x52\x65\x73\x65\x61\x72\x63\x68\x20\x61" + "\x6E\x64\x20\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74\x22\x2D" + "\x2D\x44\x6F\x63\x2E\x20\x72\x65\x73\x75\x6D\x65\x2E\x1E\x20\x20" + "\x1F\x61\x22\x54\x68\x69\x73\x20\x64\x69\x72\x65\x63\x74\x6F\x72" + "\x79\x20\x77\x61\x73\x20\x64\x65\x76\x65\x6C\x6F\x70\x65\x64\x20" + "\x62\x79\x20\x74\x68\x65\x20\x54\x65\x63\x68\x6E\x6F\x6C\x6F\x67" + "\x79\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x4E\x61\x74\x69\x6F\x6E" + "\x61\x6C\x20\x44\x69\x66\x66\x75\x73\x69\x6F\x6E\x20\x4E\x65\x74" + "\x77\x6F\x72\x6B\x20\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x54\x65" + "\x61\x63\x68\x65\x72\x73\x20\x43\x6F\x6C\x6C\x65\x67\x65\x2C\x20" + "\x43\x6F\x6C\x75\x6D\x62\x69\x61\x20\x55\x6E\x69\x76\x65\x72\x73" + "\x69\x74\x79\x20\x70\x75\x72\x73\x75\x61\x6E\x74\x20\x74\x6F\x20" + "\x63\x6F\x6E\x74\x72\x61\x63\x74\x20\x6E\x75\x6D\x62\x65\x72\x20" + "\x4F\x45\x2D\x33\x30\x30\x2D\x38\x33\x2D\x30\x32\x35\x33\x2C\x20" + "\x55\x2E\x53\x2E\x20\x44\x65\x70\x61\x72\x74\x6D\x65\x6E\x74\x20" + "\x6F\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x22\x2D\x2D\x54" + "\x2E\x70\x2E\x20\x76\x65\x72\x73\x6F\x2E\x1E\x20\x20\x1F\x61\x44" + "\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x74\x6F\x20\x64\x65" + "\x70\x6F\x73\x69\x74\x6F\x72\x79\x20\x6C\x69\x62\x72\x61\x72\x69" + "\x65\x73\x20\x69\x6E\x20\x6D\x69\x63\x72\x6F\x66\x69\x63\x68\x65" + "\x2E\x1E\x20\x20\x1F\x61\x22\x44\x65\x63\x65\x6D\x62\x65\x72\x20" + "\x31\x39\x38\x34\x2E\x22\x1E\x20\x20\x1F\x61\x49\x6E\x63\x6C\x75" + "\x64\x65\x73\x20\x69\x6E\x64\x65\x78\x65\x73\x2E\x1E\x31\x30\x1F" + "\x61\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73\x2E\x1F" + "\x62\x4E\x61\x74\x69\x6F\x6E\x61\x6C\x20\x44\x69\x66\x66\x75\x73" + "\x69\x6F\x6E\x20\x4E\x65\x74\x77\x6F\x72\x6B\x1F\x78\x44\x69\x72" + "\x65\x63\x74\x6F\x72\x69\x65\x73\x2E\x1E\x20\x30\x1F\x61\x45\x64" + "\x75\x63\x61\x74\x69\x6F\x6E\x61\x6C\x20\x74\x65\x63\x68\x6E\x6F" + "\x6C\x6F\x67\x79\x1F\x7A\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61" + "\x74\x65\x73\x2E\x1E\x20\x30\x1F\x61\x46\x65\x64\x65\x72\x61\x6C" + "\x20\x61\x69\x64\x20\x74\x6F\x20\x65\x64\x75\x63\x61\x74\x69\x6F" + "\x6E\x1F\x7A\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73" + "\x2E\x1E\x31\x30\x1F\x61\x57\x65\x62\x62\x2C\x20\x4D\x69\x63\x68" + "\x61\x65\x6C\x20\x42\x2E\x1E\x31\x30\x1F\x61\x55\x6E\x69\x74\x65" + "\x64\x20\x53\x74\x61\x74\x65\x73\x2E\x1F\x62\x4F\x66\x66\x69\x63" + "\x65\x20\x6F\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x61\x6C" + "\x20\x52\x65\x73\x65\x61\x72\x63\x68\x20\x61\x6E\x64\x20\x49\x6D" + "\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74\x2E\x1E\x1D" +},{ + "\x30\x31\x35\x35\x39\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x33\x37" + "\x33\x49\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x38\x30\x30\x34\x31\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x35\x30\x30\x31\x30\x30" + "\x30\x31\x33\x30\x30\x30\x36\x37\x30\x33\x37\x30\x30\x32\x30\x30" + "\x30\x30\x38\x30\x30\x34\x33\x30\x30\x31\x32\x30\x30\x31\x30\x30" + "\x30\x37\x34\x30\x30\x31\x39\x30\x30\x31\x31\x32\x30\x38\x36\x30" + "\x30\x32\x32\x30\x30\x31\x33\x31\x30\x38\x38\x30\x30\x31\x36\x30" + "\x30\x31\x35\x33\x30\x34\x39\x30\x30\x30\x39\x30\x30\x31\x36\x39" + "\x31\x30\x30\x30\x30\x32\x32\x30\x30\x31\x37\x38\x32\x34\x35\x30" + "\x32\x35\x39\x30\x30\x32\x30\x30\x32\x36\x30\x30\x31\x30\x35\x30" + "\x30\x34\x35\x39\x33\x30\x30\x30\x30\x33\x33\x30\x30\x35\x36\x34" + "\x35\x30\x30\x30\x30\x35\x35\x30\x30\x35\x39\x37\x35\x30\x30\x30" + "\x30\x31\x37\x30\x30\x36\x35\x32\x35\x30\x34\x30\x30\x34\x31\x30" + "\x30\x36\x36\x39\x35\x30\x30\x30\x30\x31\x38\x30\x30\x37\x31\x30" + "\x36\x35\x30\x30\x30\x34\x34\x30\x30\x37\x32\x38\x36\x35\x30\x30" + "\x30\x34\x34\x30\x30\x37\x37\x32\x36\x35\x30\x30\x30\x33\x37\x30" + "\x30\x38\x31\x36\x36\x35\x30\x30\x30\x35\x32\x30\x30\x38\x35\x33" + "\x36\x35\x30\x30\x30\x33\x37\x30\x30\x39\x30\x35\x37\x30\x30\x30" + "\x30\x34\x34\x30\x30\x39\x34\x32\x37\x30\x30\x30\x30\x32\x35\x30" + "\x30\x39\x38\x36\x37\x31\x30\x30\x30\x34\x38\x30\x31\x30\x31\x31" + "\x37\x31\x30\x30\x30\x33\x30\x30\x31\x30\x35\x39\x37\x31\x30\x30" + "\x30\x36\x38\x30\x31\x30\x38\x39\x37\x34\x30\x30\x30\x32\x38\x30" + "\x31\x31\x35\x37\x1E\x41\x43\x44\x2D\x32\x34\x37\x36\x1E\x39\x31" + "\x30\x34\x32\x35\x73\x31\x39\x38\x37\x20\x20\x20\x20\x64\x63\x75" + "\x61\x20\x20\x20\x20\x20\x62\x20\x20\x20\x66\x30\x30\x30\x31\x30" + "\x20\x65\x6E\x67\x20\x64\x1E\x31\x39\x39\x31\x30\x35\x31\x39\x31" + "\x34\x34\x35\x35\x31\x2E\x30\x1E\x20\x20\x1F\x6F\x32\x33\x36\x30" + "\x32\x33\x38\x39\x1E\x20\x20\x1F\x61\x45\x44\x20\x32\x38\x38\x35" + "\x32\x39\x1F\x62\x45\x52\x49\x43\x1E\x20\x20\x1F\x61\x6E\x2D\x75" + "\x73\x2D\x2D\x2D\x1E\x20\x20\x1F\x61\x30\x34\x36\x36\x2D\x41\x2D" + "\x30\x33\x20\x28\x4D\x46\x29\x1E\x30\x20\x1F\x61\x45\x44\x20\x31" + "\x2E\x33\x31\x30\x2F\x32\x3A\x32\x38\x38\x35\x32\x39\x1E\x20\x20" + "\x1F\x61\x4C\x50\x20\x38\x37\x2D\x34\x30\x33\x20\x63\x1E\x20\x20" + "\x1F\x61\x44\x52\x55\x47\x1E\x31\x30\x1F\x61\x53\x65\x61\x67\x65" + "\x72\x2C\x20\x41\x6E\x64\x72\x65\x77\x20\x4A\x2E\x1E\x31\x30\x1F" + "\x61\x43\x68\x65\x63\x6B\x20\x74\x68\x69\x73\x20\x6F\x75\x74\x20" + "\x3A\x1F\x62\x6C\x69\x62\x72\x61\x72\x79\x20\x70\x72\x6F\x67\x72" + "\x61\x6D\x20\x6D\x6F\x64\x65\x6C\x73\x20\x2F\x1F\x63\x70\x72\x65" + "\x70\x61\x72\x65\x64\x20\x62\x79\x20\x41\x6E\x64\x72\x65\x77\x20" + "\x4A\x2E\x20\x53\x65\x61\x67\x65\x72\x2C\x20\x53\x61\x72\x61\x68" + "\x20\x4A\x2E\x20\x52\x6F\x62\x65\x72\x74\x73\x2C\x20\x43\x61\x72" + "\x6F\x6C\x20\x5A\x2E\x20\x4C\x69\x6E\x63\x6F\x6C\x6E\x20\x3B\x20" + "\x70\x72\x65\x70\x61\x72\x65\x64\x20\x66\x6F\x72\x20\x4E\x61\x74" + "\x69\x6F\x6E\x61\x6C\x20\x44\x69\x66\x66\x75\x73\x69\x6F\x6E\x20" + "\x4E\x65\x74\x77\x6F\x72\x6B\x20\x75\x6E\x64\x65\x72\x20\x63\x6F" + "\x6E\x74\x72\x61\x63\x74\x20\x74\x6F\x20\x52\x4D\x43\x20\x43\x6F" + "\x72\x70\x6F\x72\x61\x74\x69\x6F\x6E\x2C\x20\x63\x6F\x6E\x74\x72" + "\x61\x63\x74\x20\x33\x30\x30\x2D\x38\x34\x2D\x30\x32\x35\x31\x20" + "\x77\x69\x74\x68\x20\x74\x68\x65\x20\x55\x6E\x69\x74\x65\x64\x20" + "\x53\x74\x61\x74\x65\x73\x20\x44\x65\x70\x61\x72\x74\x6D\x65\x6E" + "\x74\x20\x6F\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x2E\x1E" + "\x30\x20\x1F\x61\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x2C\x20" + "\x44\x2E\x43\x2E\x20\x3A\x1F\x62\x4F\x66\x66\x69\x63\x65\x20\x6F" + "\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x61\x6C\x20\x52\x65" + "\x73\x65\x61\x72\x63\x68\x20\x61\x6E\x64\x20\x49\x6D\x70\x72\x6F" + "\x76\x65\x6D\x65\x6E\x74\x2C\x20\x55\x2E\x53\x2E\x20\x44\x65\x70" + "\x74\x2E\x20\x6F\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x2C" + "\x1F\x63\x5B\x31\x39\x38\x37\x5D\x1E\x20\x20\x1F\x61\x69\x78\x2C" + "\x20\x33\x31\x39\x20\x70\x2E\x20\x3A\x1F\x62\x69\x6C\x6C\x2E\x20" + "\x3B\x1F\x63\x32\x38\x20\x63\x6D\x2E\x1E\x20\x20\x1F\x61\x44\x69" + "\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x74\x6F\x20\x64\x65\x70" + "\x6F\x73\x69\x74\x6F\x72\x79\x20\x6C\x69\x62\x72\x61\x72\x69\x65" + "\x73\x20\x69\x6E\x20\x6D\x69\x63\x72\x6F\x66\x69\x63\x68\x65\x2E" + "\x1E\x20\x20\x1F\x61\x22\x4A\x75\x6C\x79\x20\x31\x39\x38\x37\x2E" + "\x22\x1E\x20\x20\x1F\x61\x49\x6E\x63\x6C\x75\x64\x65\x73\x20\x62" + "\x69\x62\x6C\x69\x6F\x67\x72\x61\x70\x68\x69\x63\x61\x6C\x20\x72" + "\x65\x66\x65\x72\x65\x6E\x63\x65\x73\x2E\x1E\x20\x20\x1F\x61\x22" + "\x4C\x50\x20\x38\x37\x2D\x34\x30\x33\x63\x2E\x22\x1E\x20\x30\x1F" + "\x61\x4C\x69\x62\x72\x61\x72\x69\x65\x73\x20\x61\x6E\x64\x20\x63" + "\x6F\x6D\x6D\x75\x6E\x69\x74\x79\x1F\x7A\x55\x6E\x69\x74\x65\x64" + "\x20\x53\x74\x61\x74\x65\x73\x2E\x1E\x20\x30\x1F\x61\x4C\x69\x62" + "\x72\x61\x72\x69\x65\x73\x20\x61\x6E\x64\x20\x65\x64\x75\x63\x61" + "\x74\x69\x6F\x6E\x1F\x7A\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61" + "\x74\x65\x73\x2E\x1E\x20\x30\x1F\x61\x53\x63\x68\x6F\x6F\x6C\x20" + "\x6C\x69\x62\x72\x61\x72\x69\x65\x73\x1F\x7A\x55\x6E\x69\x74\x65" + "\x64\x20\x53\x74\x61\x74\x65\x73\x2E\x1E\x20\x30\x1F\x61\x49\x6E" + "\x73\x74\x72\x75\x63\x74\x69\x6F\x6E\x61\x6C\x20\x6D\x61\x74\x65" + "\x72\x69\x61\x6C\x73\x20\x63\x65\x6E\x74\x65\x72\x73\x1F\x7A\x55" + "\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73\x2E\x1E\x20\x30" + "\x1F\x61\x50\x75\x62\x6C\x69\x63\x20\x6C\x69\x62\x72\x61\x72\x69" + "\x65\x73\x1F\x7A\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65" + "\x73\x2E\x1E\x31\x30\x1F\x61\x52\x6F\x62\x65\x72\x74\x73\x2C\x20" + "\x53\x61\x72\x61\x68\x20\x4A\x2E\x1F\x71\x28\x53\x61\x72\x61\x68" + "\x20\x4A\x61\x6E\x65\x29\x2C\x1F\x64\x31\x39\x34\x36\x2D\x1E\x31" + "\x30\x1F\x61\x4C\x69\x6E\x63\x6F\x6C\x6E\x2C\x20\x43\x61\x72\x6F" + "\x6C\x20\x5A\x61\x6C\x6C\x2E\x1E\x31\x30\x1F\x61\x55\x6E\x69\x74" + "\x65\x64\x20\x53\x74\x61\x74\x65\x73\x2E\x1F\x62\x4E\x61\x74\x69" + "\x6F\x6E\x61\x6C\x20\x44\x69\x66\x66\x75\x73\x69\x6F\x6E\x20\x4E" + "\x65\x74\x77\x6F\x72\x6B\x2E\x1E\x32\x30\x1F\x61\x52\x4D\x43\x20" + "\x52\x65\x73\x65\x61\x72\x63\x68\x20\x43\x6F\x72\x70\x6F\x72\x61" + "\x74\x69\x6F\x6E\x2E\x1E\x31\x30\x1F\x61\x55\x6E\x69\x74\x65\x64" + "\x20\x53\x74\x61\x74\x65\x73\x2E\x1F\x62\x4F\x66\x66\x69\x63\x65" + "\x20\x6F\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x61\x6C\x20" + "\x52\x65\x73\x65\x61\x72\x63\x68\x20\x61\x6E\x64\x20\x49\x6D\x70" + "\x72\x6F\x76\x65\x6D\x65\x6E\x74\x2E\x1E\x30\x31\x1F\x61\x4C\x69" + "\x62\x72\x61\x72\x79\x20\x70\x72\x6F\x67\x72\x61\x6D\x20\x6D\x6F" + "\x64\x65\x6C\x73\x2E\x1E\x1D" +},{ + "\x30\x31\x31\x35\x35\x6E\x61\x73\x20\x20\x32\x32\x30\x30\x33\x31" + "\x33\x35\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x38\x30\x30\x34\x31\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x35\x30\x30\x31\x30\x30" + "\x30\x32\x37\x30\x30\x30\x36\x37\x30\x34\x30\x30\x30\x30\x38\x30" + "\x30\x30\x39\x34\x30\x31\x32\x30\x30\x31\x32\x30\x30\x31\x30\x32" + "\x30\x34\x32\x30\x30\x30\x37\x30\x30\x31\x31\x34\x30\x35\x30\x30" + "\x30\x31\x35\x30\x30\x31\x32\x31\x30\x37\x34\x30\x30\x31\x31\x30" + "\x30\x31\x33\x36\x30\x38\x36\x30\x30\x32\x30\x30\x30\x31\x34\x37" + "\x30\x34\x39\x30\x30\x30\x39\x30\x30\x31\x36\x37\x32\x31\x32\x30" + "\x30\x38\x33\x30\x30\x31\x37\x36\x32\x34\x35\x30\x30\x36\x39\x30" + "\x30\x32\x35\x39\x32\x36\x30\x30\x31\x31\x35\x30\x30\x33\x32\x38" + "\x32\x36\x35\x30\x30\x37\x31\x30\x30\x34\x34\x33\x33\x30\x30\x30" + "\x30\x31\x37\x30\x30\x35\x31\x34\x33\x31\x30\x30\x30\x31\x31\x30" + "\x30\x35\x33\x31\x35\x30\x30\x30\x30\x33\x32\x30\x30\x35\x34\x32" + "\x36\x31\x30\x30\x30\x33\x36\x30\x30\x35\x37\x34\x36\x35\x30\x30" + "\x30\x36\x32\x30\x30\x36\x31\x30\x36\x35\x30\x30\x30\x36\x34\x30" + "\x30\x36\x37\x32\x37\x31\x30\x30\x30\x32\x32\x30\x30\x37\x33\x36" + "\x37\x31\x30\x30\x30\x37\x30\x30\x30\x37\x35\x38\x39\x33\x36\x30" + "\x30\x31\x33\x30\x30\x38\x32\x38\x1E\x41\x43\x44\x2D\x32\x33\x37" + "\x36\x1E\x39\x31\x30\x32\x32\x35\x63\x31\x39\x75\x75\x39\x39\x39" + "\x39\x64\x63\x75\x61\x72\x20\x20\x20\x20\x20\x20\x20\x20\x66\x30" + "\x75\x75\x75\x20\x30\x65\x6E\x67\x20\x20\x1E\x31\x39\x39\x31\x30" + "\x35\x31\x39\x31\x34\x34\x35\x35\x31\x2E\x30\x1E\x20\x20\x1F\x61" + "\x20\x20\x20\x39\x31\x36\x35\x36\x30\x36\x30\x20\x1F\x6F\x32\x33" + "\x31\x35\x30\x38\x34\x37\x1E\x20\x20\x1F\x64\x47\x50\x4F\x1E\x20" + "\x20\x1F\x61\x32\x1F\x69\x39\x31\x30\x33\x1E\x20\x20\x1F\x61\x6C" + "\x63\x1E\x30\x30\x1F\x61\x49\x4E\x20\x50\x52\x4F\x43\x45\x53\x53" + "\x1E\x20\x20\x1F\x61\x30\x37\x38\x35\x2D\x48\x1E\x30\x20\x1F\x61" + "\x4C\x43\x20\x31\x2E\x34\x30\x2F\x32\x3A\x46\x20\x33\x31\x2F\x1E" + "\x20\x20\x1F\x61\x44\x52\x55\x47\x1E\x30\x20\x1F\x61\x46\x65\x64" + "\x65\x72\x61\x6C\x20\x4C\x69\x62\x72\x61\x72\x79\x20\x61\x6E\x64" + "\x20\x49\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x20\x4E\x65\x74" + "\x77\x6F\x72\x6B\x20\x73\x65\x72\x76\x69\x63\x65\x73\x20\x64\x69" + "\x72\x65\x63\x74\x6F\x72\x79\x20\x66\x6F\x72\x20\x66\x69\x73\x63" + "\x61\x6C\x20\x79\x65\x61\x72\x20\x2E\x2E\x2E\x1E\x30\x30\x1F\x61" + "\x46\x45\x44\x4C\x49\x4E\x4B\x20\x73\x65\x72\x76\x69\x63\x65\x73" + "\x20\x64\x69\x72\x65\x63\x74\x6F\x72\x79\x20\x66\x6F\x72\x20\x66" + "\x69\x73\x63\x61\x6C\x20\x79\x65\x61\x72\x20\x2E\x2E\x2E\x20\x2F" + "\x1F\x63\x46\x4C\x49\x43\x43\x2F\x46\x45\x44\x4C\x49\x4E\x4B\x2E" + "\x1E\x30\x30\x1F\x61\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x2C" + "\x20\x44\x2E\x43\x2E\x20\x3A\x1F\x62\x46\x65\x64\x65\x72\x61\x6C" + "\x20\x4C\x69\x62\x72\x61\x72\x79\x20\x61\x6E\x64\x20\x49\x6E\x66" + "\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x20\x4E\x65\x74\x77\x6F\x72\x6B" + "\x2C\x20\x46\x65\x64\x65\x72\x61\x6C\x20\x4C\x69\x62\x72\x61\x72" + "\x79\x20\x61\x6E\x64\x20\x49\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F" + "\x6E\x20\x43\x65\x6E\x74\x65\x72\x20\x43\x6F\x6D\x6D\x69\x74\x74" + "\x65\x65\x2C\x1E\x20\x20\x1F\x61\x46\x45\x44\x4C\x49\x4E\x4B\x2C" + "\x20\x52\x6F\x6F\x6D\x20\x4C\x41\x20\x31\x30\x32\x36\x43\x2C\x20" + "\x4C\x69\x62\x72\x61\x72\x79\x20\x6F\x66\x20\x43\x6F\x6E\x67\x72" + "\x65\x73\x73\x2C\x20\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x20" + "\x44\x2E\x43\x2E\x20\x32\x30\x35\x34\x30\x1E\x20\x20\x1F\x61\x76" + "\x2E\x20\x3B\x1F\x63\x32\x38\x20\x63\x6D\x2E\x1E\x20\x20\x1F\x61" + "\x41\x6E\x6E\x75\x61\x6C\x1E\x20\x20\x1F\x61\x44\x65\x73\x63\x72" + "\x69\x70\x74\x69\x6F\x6E\x20\x62\x61\x73\x65\x64\x20\x6F\x6E\x3A" + "\x20\x31\x39\x39\x30\x2E\x1E\x32\x30\x1F\x61\x46\x45\x44\x4C\x49" + "\x4E\x4B\x20\x28\x4E\x65\x74\x77\x6F\x72\x6B\x29\x1F\x78\x44\x69" + "\x72\x65\x63\x74\x6F\x72\x69\x65\x73\x2E\x1E\x20\x30\x1F\x61\x4C" + "\x69\x62\x72\x61\x72\x79\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69" + "\x6F\x6E\x20\x6E\x65\x74\x77\x6F\x72\x6B\x73\x1F\x7A\x55\x6E\x69" + "\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73\x1F\x78\x44\x69\x72\x65" + "\x63\x74\x6F\x72\x69\x65\x73\x2E\x1E\x20\x30\x1F\x61\x4C\x69\x62" + "\x72\x61\x72\x69\x65\x73\x2C\x20\x47\x6F\x76\x65\x72\x6E\x6D\x65" + "\x6E\x74\x61\x6C\x2C\x20\x61\x64\x6D\x69\x6E\x69\x73\x74\x72\x61" + "\x74\x69\x76\x65\x2C\x20\x65\x74\x63\x2E\x1F\x78\x50\x65\x72\x69" + "\x6F\x64\x69\x63\x61\x6C\x73\x2E\x1E\x32\x30\x1F\x61\x46\x45\x44" + "\x4C\x49\x4E\x4B\x20\x28\x4E\x65\x74\x77\x6F\x72\x6B\x29\x1E\x32" + "\x30\x1F\x61\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73" + "\x2E\x1F\x62\x46\x65\x64\x65\x72\x61\x6C\x20\x4C\x69\x62\x72\x61" + "\x72\x79\x20\x61\x6E\x64\x20\x49\x6E\x66\x6F\x72\x6D\x61\x74\x69" + "\x6F\x6E\x20\x43\x65\x6E\x74\x65\x72\x20\x43\x6F\x6D\x6D\x69\x74" + "\x74\x65\x65\x2E\x1E\x20\x20\x1F\x61\x31\x39\x39\x31\x20\x4C\x49" + "\x43\x1E\x1D" +},{ + "\x30\x30\x39\x31\x35\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x32" + "\x39\x4B\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x38\x30\x30\x34\x31\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x35\x30\x30\x31\x30\x30" + "\x30\x31\x33\x30\x30\x30\x36\x37\x30\x34\x30\x30\x30\x31\x33\x30" + "\x30\x30\x38\x30\x30\x33\x37\x30\x30\x32\x30\x30\x30\x30\x39\x33" + "\x30\x37\x34\x30\x30\x31\x39\x30\x30\x31\x31\x33\x30\x38\x36\x30" + "\x30\x32\x32\x30\x30\x31\x33\x32\x30\x34\x39\x30\x30\x30\x39\x30" + "\x30\x31\x35\x34\x31\x30\x30\x30\x30\x31\x38\x30\x30\x31\x36\x33" + "\x32\x34\x35\x30\x31\x35\x37\x30\x30\x31\x38\x31\x32\x36\x30\x30" + "\x31\x32\x34\x30\x30\x33\x33\x38\x33\x30\x30\x30\x30\x30\x39\x30" + "\x30\x34\x36\x32\x35\x33\x33\x30\x30\x39\x33\x30\x30\x34\x37\x31" + "\x35\x30\x30\x30\x30\x35\x35\x30\x30\x35\x36\x34\x36\x35\x30\x30" + "\x30\x31\x34\x30\x30\x36\x31\x39\x37\x31\x30\x30\x30\x35\x32\x30" + "\x30\x36\x33\x33\x1E\x41\x43\x44\x2D\x31\x39\x34\x39\x1E\x39\x31" + "\x30\x34\x31\x35\x72\x31\x39\x39\x30\x31\x30\x38\x37\x64\x63\x75" + "\x20\x20\x20\x20\x20\x62\x20\x20\x20\x20\x66\x30\x30\x30\x31\x30" + "\x20\x65\x6E\x67\x20\x64\x1E\x31\x39\x39\x31\x30\x34\x32\x31\x31" + "\x32\x32\x35\x34\x31\x2E\x30\x1E\x20\x20\x1F\x6F\x32\x33\x34\x36" + "\x39\x32\x36\x31\x1E\x20\x20\x1F\x61\x47\x50\x4F\x1F\x63\x47\x50" + "\x4F\x1E\x20\x20\x1F\x61\x45\x44\x20\x32\x38\x36\x39\x39\x32\x1F" + "\x62\x45\x52\x49\x43\x1E\x20\x20\x1F\x61\x30\x34\x36\x36\x2D\x41" + "\x2D\x30\x33\x20\x28\x4D\x46\x29\x1E\x30\x20\x1F\x61\x45\x44\x20" + "\x31\x2E\x33\x31\x30\x2F\x32\x3A\x32\x38\x36\x39\x39\x32\x1E\x20" + "\x20\x1F\x61\x44\x52\x55\x47\x1E\x31\x30\x1F\x61\x50\x61\x75\x6C" + "\x75\x2C\x20\x4E\x61\x6E\x63\x79\x2E\x1E\x31\x30\x1F\x61\x44\x65" + "\x61\x6C\x69\x6E\x67\x20\x77\x69\x74\x68\x20\x64\x72\x6F\x70\x6F" + "\x75\x74\x73\x1F\x68\x6D\x69\x63\x72\x6F\x66\x6F\x72\x6D\x20\x3A" + "\x1F\x62\x74\x68\x65\x20\x75\x72\x62\x61\x6E\x20\x73\x75\x70\x65" + "\x72\x69\x6E\x74\x65\x6E\x64\x65\x6E\x74\x73\x27\x20\x63\x61\x6C" + "\x6C\x20\x74\x6F\x20\x61\x63\x74\x69\x6F\x6E\x20\x2F\x1F\x63\x62" + "\x79\x20\x74\x68\x65\x20\x4F\x45\x52\x49\x20\x55\x72\x62\x61\x6E" + "\x20\x53\x75\x70\x65\x72\x69\x6E\x74\x65\x6E\x64\x65\x6E\x74\x73" + "\x20\x4E\x65\x74\x77\x6F\x72\x6B\x20\x3B\x20\x4E\x61\x6E\x63\x79" + "\x20\x50\x61\x75\x6C\x75\x2C\x20\x77\x72\x69\x74\x65\x72\x2D\x65" + "\x64\x69\x74\x6F\x72\x2E\x1E\x30\x20\x1F\x61\x5B\x57\x61\x73\x68" + "\x69\x6E\x67\x74\x6F\x6E\x2C\x20\x44\x2E\x43\x5D\x2E\x20\x3A\x1F" + "\x62\x4F\x66\x66\x69\x63\x65\x20\x6F\x66\x20\x45\x64\x75\x63\x61" + "\x74\x69\x6F\x6E\x61\x6C\x20\x52\x65\x73\x65\x61\x72\x63\x68\x20" + "\x61\x6E\x64\x20\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74\x2C" + "\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x61\x6C\x20\x52\x65\x73" + "\x6F\x75\x72\x63\x65\x73\x20\x49\x6E\x66\x6F\x72\x6D\x61\x74\x69" + "\x6F\x6E\x20\x43\x65\x6E\x74\x65\x72\x2C\x1F\x63\x5B\x31\x39\x38" + "\x37\x5D\x1E\x20\x20\x1F\x61\x31\x20\x76\x2E\x1E\x20\x20\x1F\x61" + "\x4D\x69\x63\x72\x6F\x66\x69\x63\x68\x65\x2E\x1F\x62\x5B\x57\x61" + "\x73\x68\x69\x6E\x67\x74\x6F\x6E\x2C\x20\x44\x2E\x43\x2E\x3F\x5D" + "\x20\x3A\x1F\x63\x53\x75\x70\x74\x2E\x20\x6F\x66\x20\x44\x6F\x63" + "\x73\x2E\x2C\x20\x55\x2E\x53\x2E\x20\x47\x2E\x50\x2E\x4F\x2E\x2C" + "\x1F\x64\x5B\x31\x39\x39\x30\x5D\x2E\x1F\x65\x31\x20\x6D\x69\x63" + "\x72\x6F\x66\x69\x63\x68\x65\x2E\x1E\x20\x20\x1F\x61\x44\x69\x73" + "\x74\x72\x69\x62\x75\x74\x65\x64\x20\x74\x6F\x20\x64\x65\x70\x6F" + "\x73\x69\x74\x6F\x72\x79\x20\x6C\x69\x62\x72\x61\x72\x69\x65\x73" + "\x20\x69\x6E\x20\x6D\x69\x63\x72\x6F\x66\x69\x63\x68\x65\x2E\x1E" + "\x20\x30\x1F\x61\x44\x72\x6F\x70\x6F\x75\x74\x73\x2E\x1E\x32\x30" + "\x1F\x61\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x61\x6C\x20\x52\x65" + "\x73\x6F\x75\x72\x63\x65\x73\x20\x49\x6E\x66\x6F\x72\x6D\x61\x74" + "\x69\x6F\x6E\x20\x43\x65\x6E\x74\x65\x72\x20\x28\x55\x2E\x53\x2E" + "\x29\x1E\x1D" +},{ + "\x30\x31\x30\x35\x33\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x31" + "\x37\x4B\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x38\x30\x30\x34\x31\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x35\x30\x30\x31\x30\x30" + "\x30\x31\x33\x30\x30\x30\x36\x37\x30\x33\x37\x30\x30\x32\x30\x30" + "\x30\x30\x38\x30\x30\x37\x34\x30\x30\x31\x39\x30\x30\x31\x30\x30" + "\x30\x38\x36\x30\x30\x32\x32\x30\x30\x31\x31\x39\x30\x34\x39\x30" + "\x30\x30\x39\x30\x30\x31\x34\x31\x32\x34\x35\x30\x31\x36\x33\x30" + "\x30\x31\x35\x30\x32\x36\x30\x30\x32\x35\x31\x30\x30\x33\x31\x33" + "\x33\x30\x30\x30\x30\x30\x39\x30\x30\x35\x36\x34\x35\x33\x33\x30" + "\x30\x39\x34\x30\x30\x35\x37\x33\x35\x30\x30\x30\x30\x35\x35\x30" + "\x30\x36\x36\x37\x36\x35\x30\x30\x30\x32\x34\x30\x30\x37\x32\x32" + "\x36\x35\x30\x30\x30\x33\x37\x30\x30\x37\x34\x36\x37\x31\x30\x30" + "\x30\x35\x32\x30\x30\x37\x38\x33\x1E\x41\x43\x44\x2D\x31\x39\x34" + "\x37\x1E\x39\x31\x30\x34\x31\x35\x72\x31\x39\x39\x30\x31\x39\x38" + "\x36\x64\x63\x75\x20\x20\x20\x20\x20\x62\x20\x20\x20\x20\x66\x30" + "\x30\x30\x31\x30\x20\x65\x6E\x67\x20\x64\x1E\x31\x39\x39\x31\x30" + "\x34\x32\x31\x31\x32\x32\x35\x34\x31\x2E\x30\x1E\x20\x20\x1F\x6F" + "\x32\x33\x34\x36\x39\x30\x39\x38\x1E\x20\x20\x1F\x61\x45\x44\x20" + "\x32\x38\x36\x33\x33\x33\x1F\x62\x45\x52\x49\x43\x1E\x20\x20\x1F" + "\x61\x30\x34\x36\x36\x2D\x41\x2D\x30\x33\x20\x28\x4D\x46\x29\x1E" + "\x30\x20\x1F\x61\x45\x44\x20\x31\x2E\x33\x31\x30\x2F\x32\x3A\x32" + "\x38\x36\x33\x33\x33\x1E\x20\x20\x1F\x61\x44\x52\x55\x47\x1E\x30" + "\x30\x1F\x61\x4E\x61\x74\x69\x6F\x6E\x61\x6C\x20\x64\x69\x73\x73" + "\x65\x6D\x69\x6E\x61\x74\x69\x6F\x6E\x20\x6D\x6F\x64\x65\x6C\x20" + "\x66\x6F\x72\x20\x74\x68\x65\x20\x49\x27\x4D\x20\x53\x50\x45\x43" + "\x49\x41\x4C\x20\x50\x72\x6F\x67\x72\x61\x6D\x20\x6F\x66\x20\x50" + "\x68\x79\x73\x69\x63\x61\x6C\x20\x45\x64\x75\x63\x61\x74\x69\x6F" + "\x6E\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x48\x61\x6E\x64\x69\x63" + "\x61\x70\x70\x65\x64\x2C\x20\x31\x39\x38\x33\x2D\x31\x39\x38\x36" + "\x1F\x68\x6D\x69\x63\x72\x6F\x66\x6F\x72\x6D\x20\x3A\x1F\x62\x66" + "\x69\x6E\x61\x6C\x20\x72\x65\x70\x6F\x72\x74\x2C\x20\x49\x27\x4D" + "\x20\x53\x50\x45\x43\x49\x41\x4C\x20\x6E\x65\x74\x77\x6F\x72\x6B" + "\x2E\x1E\x30\x20\x1F\x61\x54\x61\x6D\x70\x61\x2C\x20\x46\x6C\x61" + "\x2E\x20\x3A\x1F\x62\x44\x65\x70\x61\x72\x74\x6D\x65\x6E\x74\x20" + "\x6F\x66\x20\x50\x68\x79\x73\x69\x63\x61\x6C\x20\x45\x64\x75\x63" + "\x61\x74\x69\x6F\x6E\x2C\x20\x43\x6F\x6C\x6C\x65\x67\x65\x20\x6F" + "\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x2C\x20\x55\x6E\x69" + "\x76\x65\x72\x73\x69\x74\x79\x20\x6F\x66\x20\x53\x6F\x75\x74\x68" + "\x20\x46\x6C\x6F\x72\x69\x64\x61\x20\x3B\x1F\x61\x5B\x57\x61\x73" + "\x68\x69\x6E\x67\x74\x6F\x6E\x2C\x20\x44\x2E\x43\x2E\x5D\x20\x3A" + "\x1F\x62\x55\x2E\x53\x2E\x20\x44\x65\x70\x74\x2E\x20\x6F\x66\x20" + "\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x2C\x20\x4F\x66\x66\x69\x63" + "\x65\x20\x6F\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x61\x6C" + "\x20\x52\x65\x73\x65\x61\x72\x63\x68\x20\x61\x6E\x64\x20\x49\x6D" + "\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74\x2C\x20\x45\x64\x75\x63\x61" + "\x74\x69\x6F\x6E\x61\x6C\x20\x52\x65\x73\x6F\x75\x72\x63\x65\x73" + "\x20\x49\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x20\x43\x65\x6E" + "\x74\x65\x72\x2C\x1F\x63\x5B\x31\x39\x38\x36\x5D\x1E\x20\x20\x1F" + "\x61\x31\x20\x76\x2E\x1E\x20\x20\x1F\x61\x4D\x69\x63\x72\x6F\x66" + "\x69\x63\x68\x65\x2E\x1F\x62\x5B\x57\x61\x73\x68\x69\x6E\x67\x74" + "\x6F\x6E\x2C\x20\x44\x2E\x43\x2E\x3F\x5D\x20\x3A\x1F\x63\x53\x75" + "\x70\x74\x2E\x20\x6F\x66\x20\x44\x6F\x63\x73\x2E\x2C\x20\x55\x2E" + "\x53\x2E\x20\x47\x2E\x50\x2E\x4F\x2E\x2C\x1F\x64\x5B\x31\x39\x39" + "\x30\x5D\x2E\x1F\x65\x32\x20\x6D\x69\x63\x72\x6F\x66\x69\x63\x68" + "\x65\x73\x2E\x1E\x20\x20\x1F\x61\x44\x69\x73\x74\x72\x69\x62\x75" + "\x74\x65\x64\x20\x74\x6F\x20\x64\x65\x70\x6F\x73\x69\x74\x6F\x72" + "\x79\x20\x6C\x69\x62\x72\x61\x72\x69\x65\x73\x20\x69\x6E\x20\x6D" + "\x69\x63\x72\x6F\x66\x69\x63\x68\x65\x2E\x1E\x20\x30\x1F\x61\x50" + "\x68\x79\x73\x69\x63\x61\x6C\x20\x65\x64\x75\x63\x61\x74\x69\x6F" + "\x6E\x2E\x1E\x20\x30\x1F\x61\x48\x61\x6E\x64\x69\x63\x61\x70\x70" + "\x65\x64\x20\x63\x68\x69\x6C\x64\x72\x65\x6E\x1F\x78\x45\x64\x75" + "\x63\x61\x74\x69\x6F\x6E\x2E\x1E\x32\x30\x1F\x61\x45\x64\x75\x63" + "\x61\x74\x69\x6F\x6E\x61\x6C\x20\x52\x65\x73\x6F\x75\x72\x63\x65" + "\x73\x20\x49\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x20\x43\x65" + "\x6E\x74\x65\x72\x20\x28\x55\x2E\x53\x2E\x29\x1E\x1D" +},{ + "\x30\x31\x30\x33\x36\x6E\x61\x6D\x20\x20\x32\x32\x30\x30\x32\x38" + "\x39\x49\x61\x20\x34\x35\x30\x30\x30\x30\x31\x30\x30\x30\x39\x30" + "\x30\x30\x30\x30\x30\x30\x38\x30\x30\x34\x31\x30\x30\x30\x30\x39" + "\x30\x30\x35\x30\x30\x31\x37\x30\x30\x30\x35\x30\x30\x31\x30\x30" + "\x30\x31\x33\x30\x30\x30\x36\x37\x30\x34\x30\x30\x30\x31\x33\x30" + "\x30\x30\x38\x30\x30\x34\x33\x30\x30\x31\x32\x30\x30\x30\x39\x33" + "\x30\x37\x34\x30\x30\x31\x34\x30\x30\x31\x30\x35\x30\x38\x36\x30" + "\x30\x31\x38\x30\x30\x31\x31\x39\x30\x38\x38\x30\x30\x31\x35\x30" + "\x30\x31\x33\x37\x30\x34\x39\x30\x30\x30\x39\x30\x30\x31\x35\x32" + "\x32\x34\x35\x30\x30\x34\x35\x30\x30\x31\x36\x31\x32\x36\x30\x30" + "\x31\x30\x35\x30\x30\x32\x30\x36\x33\x30\x30\x30\x30\x34\x31\x30" + "\x30\x33\x31\x31\x35\x30\x30\x30\x30\x35\x35\x30\x30\x33\x35\x32" + "\x35\x30\x30\x30\x30\x33\x33\x30\x30\x34\x30\x37\x35\x30\x30\x30" + "\x30\x32\x38\x30\x30\x34\x34\x30\x35\x30\x30\x30\x30\x32\x36\x30" + "\x30\x34\x36\x38\x36\x31\x30\x30\x30\x34\x38\x30\x30\x34\x39\x34" + "\x36\x35\x30\x30\x30\x35\x35\x30\x30\x35\x34\x32\x36\x35\x30\x30" + "\x30\x34\x34\x30\x30\x35\x39\x37\x37\x31\x30\x30\x30\x36\x38\x30" + "\x30\x36\x34\x31\x37\x34\x30\x30\x30\x33\x37\x30\x30\x37\x30\x39" + "\x1E\x41\x43\x44\x2D\x31\x39\x33\x38\x1E\x39\x31\x30\x34\x31\x35" + "\x73\x31\x39\x39\x31\x20\x20\x20\x20\x64\x63\x75\x20\x20\x20\x20" + "\x20\x20\x20\x20\x20\x20\x66\x30\x30\x30\x30\x30\x20\x65\x6E\x67" + "\x20\x64\x1E\x31\x39\x39\x31\x30\x34\x32\x31\x31\x32\x32\x35\x34" + "\x31\x2E\x30\x1E\x20\x20\x1F\x6F\x32\x33\x34\x36\x38\x32\x37\x32" + "\x1E\x20\x20\x1F\x61\x47\x50\x4F\x1F\x63\x47\x50\x4F\x1E\x20\x20" + "\x1F\x61\x6E\x2D\x75\x73\x2D\x2D\x2D\x1E\x20\x20\x1F\x61\x30\x34" + "\x36\x31\x2D\x44\x2D\x30\x35\x1E\x30\x20\x1F\x61\x45\x44\x20\x31" + "\x2E\x33\x30\x32\x3A\x53\x68\x20\x32\x1E\x20\x20\x1F\x61\x50\x49" + "\x50\x20\x39\x31\x2D\x38\x33\x36\x1E\x20\x20\x1F\x61\x44\x52\x55" + "\x47\x1E\x30\x30\x1F\x61\x4E\x44\x4E\x2C\x20\x73\x68\x61\x72\x69" + "\x6E\x67\x20\x73\x75\x63\x63\x65\x73\x73\x20\x74\x6F\x20\x69\x6D" + "\x70\x72\x6F\x76\x65\x20\x73\x63\x68\x6F\x6F\x6C\x73\x2E\x1E\x30" + "\x20\x1F\x61\x5B\x57\x61\x73\x68\x69\x6E\x67\x74\x6F\x6E\x2C\x20" + "\x44\x43\x5D\x20\x3A\x1F\x62\x55\x2E\x53\x2E\x20\x44\x65\x70\x74" + "\x2E\x20\x6F\x66\x20\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x2C\x20" + "\x4F\x66\x66\x69\x63\x65\x20\x6F\x66\x20\x45\x64\x75\x63\x61\x74" + "\x69\x6F\x6E\x61\x6C\x20\x52\x65\x73\x65\x61\x72\x63\x68\x20\x61" + "\x6E\x64\x20\x49\x6D\x70\x72\x6F\x76\x65\x6D\x65\x6E\x74\x2C\x1F" + "\x63\x5B\x31\x39\x39\x31\x5D\x1E\x20\x20\x1F\x61\x31\x20\x66\x6F" + "\x6C\x64\x65\x64\x20\x73\x68\x65\x65\x74\x20\x28\x36\x20\x70\x2E" + "\x29\x20\x3B\x1F\x63\x32\x32\x20\x78\x20\x31\x30\x20\x63\x6D\x2E" + "\x1E\x20\x20\x1F\x61\x41\x74\x20\x68\x65\x61\x64\x20\x6F\x66\x20" + "\x74\x69\x74\x6C\x65\x3A\x20\x4E\x61\x74\x69\x6F\x6E\x61\x6C\x20" + "\x44\x69\x66\x66\x75\x73\x69\x6F\x6E\x20\x4E\x65\x74\x77\x6F\x72" + "\x6B\x2C\x20\x4E\x44\x4E\x2E\x1E\x20\x20\x1F\x61\x53\x68\x69\x70" + "\x70\x69\x6E\x67\x20\x6C\x69\x73\x74\x20\x6E\x6F\x2E\x3A\x20\x39" + "\x31\x2D\x31\x39\x38\x2D\x50\x2E\x1E\x20\x20\x1F\x61\x22\x4A\x61" + "\x6E\x75\x61\x72\x79\x20\x31\x39\x39\x31\x22\x2D\x2D\x50\x2E\x20" + "\x5B\x35\x5D\x2E\x1E\x20\x20\x1F\x61\x22\x50\x49\x50\x20\x39\x31" + "\x2D\x38\x33\x36\x22\x2D\x2D\x50\x2E\x20\x5B\x35\x5D\x2E\x1E\x31" + "\x30\x1F\x61\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73" + "\x2E\x1F\x62\x4E\x61\x74\x69\x6F\x6E\x61\x6C\x20\x44\x69\x66\x66" + "\x75\x73\x69\x6F\x6E\x20\x4E\x65\x74\x77\x6F\x72\x6B\x2E\x1E\x20" + "\x30\x1F\x61\x44\x65\x6D\x6F\x6E\x73\x74\x72\x61\x74\x69\x6F\x6E" + "\x20\x63\x65\x6E\x74\x65\x72\x73\x20\x69\x6E\x20\x65\x64\x75\x63" + "\x61\x74\x69\x6F\x6E\x1F\x7A\x55\x6E\x69\x74\x65\x64\x20\x53\x74" + "\x61\x74\x65\x73\x2E\x1E\x20\x30\x1F\x61\x45\x64\x75\x63\x61\x74" + "\x69\x6F\x6E\x61\x6C\x20\x69\x6E\x6E\x6F\x76\x61\x74\x69\x6F\x6E" + "\x73\x1F\x7A\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61\x74\x65\x73" + "\x2E\x1E\x31\x30\x1F\x61\x55\x6E\x69\x74\x65\x64\x20\x53\x74\x61" + "\x74\x65\x73\x2E\x1F\x62\x4F\x66\x66\x69\x63\x65\x20\x6F\x66\x20" + "\x45\x64\x75\x63\x61\x74\x69\x6F\x6E\x61\x6C\x20\x52\x65\x73\x65" + "\x61\x72\x63\x68\x20\x61\x6E\x64\x20\x49\x6D\x70\x72\x6F\x76\x65" + "\x6D\x65\x6E\x74\x2E\x1E\x30\x31\x1F\x61\x4E\x61\x74\x69\x6F\x6E" + "\x61\x6C\x20\x44\x69\x66\x66\x75\x73\x69\x6F\x6E\x20\x4E\x65\x74" + "\x77\x6F\x72\x6B\x2C\x20\x4E\x44\x4E\x2E\x1E\x1D" +}}; + void MyServer::recv_Z_init (Z_InitRequest *initRequest, Z_InitResponse *initResponse) { @@ -82,7 +1558,21 @@ void MyServer::recv_Z_search (Z_SearchRequest *searchRequest, Z_SearchResponse *searchResponse) { logf (LOG_LOG, "MyServer::recv_Z_search"); - myServer->close(); + if (searchRequest->query->which == Z_Query_type_1) + { + Z_RPNStructure *s = searchRequest->query->u.type_1->RPNStructure; + if (s->which == Z_RPNStructure_simple && + s->u.simple->which == Z_Operand_APT && + s->u.simple->u.attributesPlusTerm->term->which == Z_Term_general) + { + Odr_oct *term = s->u.simple->u.attributesPlusTerm->term->u.general; + char *str = (char *) odr_malloc (odr_decode(), term->len+1); + if (term->len) + memcpy (str, term->buf, term->len); + str[term->len] = '\0'; + *searchResponse->resultCount = atoi(str); + } + } } void MyServer::recv_Z_present (Z_PresentRequest *presentRequest, @@ -96,9 +1586,14 @@ void MyServer::recv_Z_record (const char *resultSetName, int *format, Z_RecordComposition *comp, Z_NamePlusRecord *namePlusRecord, - Z_DefaultDiagFormat *diagnostics) + Z_Records *records) { - + logf (LOG_LOG, "MyServer::recv_Z_record"); + int max = sizeof(marc_records) / sizeof(*marc_records); + int eff_pos = (position-1) % max; + create_databaseRecord (namePlusRecord, 0, VAL_USMARC, + marc_records[eff_pos], + strlen(marc_records[eff_pos])); } IYaz_PDU_Observer *MyServer::clone(IYaz_PDU_Observable *the_PDU_Observable) @@ -107,7 +1602,7 @@ IYaz_PDU_Observer *MyServer::clone(IYaz_PDU_Observable *the_PDU_Observable) logf (LOG_LOG, "child no %d", m_no); m_no++; new_server = new MyServer(the_PDU_Observable); - new_server->timeout(60); + new_server->timeout(900); return new_server; } @@ -151,12 +1646,8 @@ int main(int argc, char **argv) for (int i = 1; i < argc; i++) z->server(argv[i]); } - COMSTACK cs = my_PDU_Assoc->comstack(); - if (cs) - printf ("fd=%d\n", cs_fileno(cs)); while (mySocketManager.processEvent() > 0) ; - logf (LOG_LOG, "bailing out"); delete z; break; } diff --git a/src/yaz-z-server.cpp b/src/yaz-z-server.cpp index ddc0bf0..e534e49 100644 --- a/src/yaz-z-server.cpp +++ b/src/yaz-z-server.cpp @@ -3,7 +3,10 @@ * See the file LICENSE for details. * * $Log: yaz-z-server.cpp,v $ - * Revision 1.2 2000-09-12 12:09:53 adam + * Revision 1.3 2000-09-21 21:43:20 adam + * Better high-level server API. + * + * Revision 1.2 2000/09/12 12:09:53 adam * More work on high-level server. * * Revision 1.1 2000/09/08 10:23:42 adam @@ -20,14 +23,85 @@ Yaz_Z_Server::Yaz_Z_Server(IYaz_PDU_Observable *the_PDU_Observable) { } +/* + * database record. + */ +void Yaz_Z_Server::create_databaseRecord ( + Z_NamePlusRecord *rec, const char *dbname, int format, const void *buf, int len) +{ + rec->databaseName = dbname ? odr_strdup (odr_encode(), dbname) : 0; + rec->which = Z_NamePlusRecord_databaseRecord; + rec->u.databaseRecord = z_ext_record (odr_encode(), format, + (const char *) buf, len); +} + +/* + * surrogate diagnostic. + */ +void Yaz_Z_Server::create_surrogateDiagnostics( + Z_NamePlusRecord *rec, const char *dbname, int error, char *const addinfo) +{ + int oid[OID_SIZE]; + int *err = (int *)odr_malloc (odr_encode(), sizeof(*err)); + oident bib1; + Z_DiagRec *drec = (Z_DiagRec *)odr_malloc (odr_encode(), sizeof(*drec)); + Z_DefaultDiagFormat *dr = (Z_DefaultDiagFormat *) + odr_malloc (odr_encode(), sizeof(*dr)); + + bib1.proto = PROTO_Z3950; + bib1.oclass = CLASS_DIAGSET; + bib1.value = VAL_BIB1; + + yaz_log(LOG_DEBUG, "SurrogateDiagnotic: %d -- %s", error, addinfo); + *err = error; + rec->databaseName = dbname ? odr_strdup (odr_encode(), dbname) : 0; + rec->which = Z_NamePlusRecord_surrogateDiagnostic; + rec->u.surrogateDiagnostic = drec; + drec->which = Z_DiagRec_defaultFormat; + drec->u.defaultFormat = dr; + dr->diagnosticSetId = odr_oiddup (odr_encode(), + oid_ent_to_oid(&bib1, oid)); + dr->condition = err; + dr->which = Z_DefaultDiagFormat_v2Addinfo; + dr->u.v2Addinfo = odr_strdup (odr_encode(), addinfo ? addinfo : ""); +} + +Z_Records *Yaz_Z_Server::create_nonSurrogateDiagnostics ( + int error, const char *addinfo) +{ + int oid[OID_SIZE]; + Z_Records *rec = (Z_Records *) + odr_malloc (odr_encode(), sizeof(*rec)); + oident bib1; + int *err = (int *) + odr_malloc (odr_encode(), sizeof(*err)); + Z_DiagRec *drec = (Z_DiagRec *) + odr_malloc (odr_encode(), sizeof(*drec)); + Z_DefaultDiagFormat *dr = (Z_DefaultDiagFormat *) + odr_malloc (odr_encode(), sizeof(*dr)); + + bib1.proto = PROTO_Z3950; + bib1.oclass = CLASS_DIAGSET; + bib1.value = VAL_BIB1; + + *err = error; + rec->which = Z_Records_NSD; + rec->u.nonSurrogateDiagnostic = dr; + dr->diagnosticSetId = + odr_oiddup (odr_encode(), oid_ent_to_oid(&bib1, oid)); + dr->condition = err; + dr->which = Z_DefaultDiagFormat_v2Addinfo; + dr->u.v2Addinfo = odr_strdup (odr_encode(), addinfo ? addinfo : ""); + return rec; +} + Z_Records *Yaz_Z_Server::pack_records (const char *resultSetName, - int start, int *num, + int start, int xnum, Z_RecordComposition *comp, int *next, int *pres, int *format) { -#if 0 - int recno, total_length = 0, toget = *num, dumped_records = 0; + int recno, total_length = 0, toget = xnum, dumped_records = 0; Z_Records *records = (Z_Records *) odr_malloc (odr_encode(), sizeof(*records)); Z_NamePlusRecordList *reclist = @@ -40,156 +114,95 @@ Z_Records *Yaz_Z_Server::pack_records (const char *resultSetName, reclist->num_records = 0; reclist->records = list; *pres = Z_PRES_SUCCESS; - *num = 0; *next = 0; yaz_log(LOG_LOG, "Request to pack %d+%d", start, toget); - yaz_log(LOG_DEBUG, "pms=%d, mrs=%d", m_preferredMessageSize, - m_maximumRecordSize); + yaz_log(LOG_LOG, "pms=%d, mrs=%d", m_preferredMessageSize, + m_maximumRecordSize); for (recno = start; reclist->num_records < toget; recno++) { - Z_NamePlusRecord *rec = - (Z_NamePlusRecord *) odr_malloc (odr_encode(), sizeof(*rec)); - rec->databaseName = 0; - rec->which = Z_NamePlusRecord_databaseRecord; - rec->u.databaseRecord = 0; - - Z_DefaultDiagFormat *diagnostics = (Z_DefaultDiagFormat *) - odr_malloc (odr_encode(), sizeof(*diagnostics)); - diagnostics->diagnosticSetId = 0; - diagnostics->condition = 0; - diagnostics->which = Z_DefaultDiagFormat_v2Addinfo; - - recv_Z_record (resultSetName, recno, format, comp, rec, diagnostics); + Z_NamePlusRecord *this_rec = + (Z_NamePlusRecord *) odr_malloc (odr_encode(), sizeof(*this_rec)); + this_rec->databaseName = 0; + this_rec->which = Z_NamePlusRecord_databaseRecord; + this_rec->u.databaseRecord = 0; - bend_fetch_rr freq; - Z_NamePlusRecord *thisrec; int this_length = 0; + + recv_Z_record (resultSetName, recno, format, comp, this_rec, records); + + if (records->which != Z_Records_DBOSD) + { + *pres = Z_PRES_FAILURE; + return records; + } + + if (this_rec->which == Z_NamePlusRecord_databaseRecord && + this_rec->u.databaseRecord == 0) + { // handler did not return a record.. + create_surrogateDiagnostics(this_rec, 0, 14, 0); + } /* * we get the number of bytes allocated on the stream before any * allocation done by the backend - this should give us a reasonable * idea of the total size of the data so far. */ - total_length = odr_total(a->encode) - dumped_records; - freq.errcode = 0; - freq.errstring = 0; - freq.basename = 0; - freq.len = 0; - freq.record = 0; - freq.last_in_set = 0; - freq.setname = setname; - freq.surrogate_flag = 0; - freq.number = recno; - freq.comp = comp; - freq.request_format = format; - freq.request_format_raw = oid; - freq.output_format = format; - freq.output_format_raw = 0; - freq.stream = a->encode; - freq.print = a->print; - freq.surrogate_flag = 0; - freq.referenceId = referenceId; - (*a->init->bend_fetch)(a->backend, &freq); - /* backend should be able to signal whether error is system-wide - or only pertaining to current record */ - if (freq.errcode) - { - if (!freq.surrogate_flag) - { - *pres = Z_PRES_FAILURE; - return diagrec(a, freq.errcode, freq.errstring); - } - reclist->records[reclist->num_records] = - surrogatediagrec(a, freq.basename, freq.errcode, - freq.errstring); - reclist->num_records++; - *next = freq.last_in_set ? 0 : recno + 1; - continue; - } - if (freq.len >= 0) - this_length = freq.len; - else - this_length = odr_total(a->encode) - total_length; - yaz_log(LOG_DEBUG, " fetched record, len=%d, total=%d", - this_length, total_length); - if (this_length + total_length > a->preferredMessageSize) + total_length = odr_total(odr_encode()) - dumped_records; + this_length = odr_total(odr_encode()) - total_length; + yaz_log(LOG_LOG, " fetched record, len=%d, total=%d", + this_length, total_length); + if (this_length + total_length > m_preferredMessageSize) { /* record is small enough, really */ - if (this_length <= a->preferredMessageSize) + if (this_length <= m_preferredMessageSize) { - yaz_log(LOG_DEBUG, " Dropped last normal-sized record"); + yaz_log(LOG_LOG, " Dropped last normal-sized record"); *pres = Z_PRES_PARTIAL_2; break; } - /* record can only be fetched by itself */ - if (this_length < a->maximumRecordSize) + if (this_length >= m_maximumRecordSize) + { /* too big entirely */ + yaz_log(LOG_LOG, "Record > maxrcdsz"); + reclist->records[reclist->num_records] = this_rec; + create_surrogateDiagnostics(this_rec, + this_rec->databaseName, 17, 0); + reclist->num_records++; + *next = recno + 1; + dumped_records += this_length; + continue; + } + else /* record can only be fetched by itself */ { - yaz_log(LOG_DEBUG, " Record > prefmsgsz"); + yaz_log(LOG_LOG, " Record > prefmsgsz"); if (toget > 1) { yaz_log(LOG_DEBUG, " Dropped it"); - reclist->records[reclist->num_records] = - surrogatediagrec(a, freq.basename, 16, 0); + reclist->records[reclist->num_records] = this_rec; + create_surrogateDiagnostics(this_rec, + this_rec->databaseName, + 16, 0); reclist->num_records++; - *next = freq.last_in_set ? 0 : recno + 1; + // *next = freq.last_in_set ? 0 : recno + 1; + *next = recno + 1; dumped_records += this_length; continue; } } - else /* too big entirely */ - { - yaz_log(LOG_DEBUG, "Record > maxrcdsz"); - reclist->records[reclist->num_records] = - surrogatediagrec(a, freq.basename, 17, 0); - reclist->num_records++; - *next = freq.last_in_set ? 0 : recno + 1; - dumped_records += this_length; - continue; - } } - - if (!(thisrec = (Z_NamePlusRecord *) - odr_malloc(a->encode, sizeof(*thisrec)))) - return 0; - if (!(thisrec->databaseName = (char *)odr_malloc(a->encode, - strlen(freq.basename) + 1))) - return 0; - strcpy(thisrec->databaseName, freq.basename); - thisrec->which = Z_NamePlusRecord_databaseRecord; - - if (freq.output_format_raw) - { - struct oident *ident = oid_getentbyoid(freq.output_format_raw); - freq.output_format = ident->value; - } - thisrec->u.databaseRecord = z_ext_record(a->encode, freq.output_format, - freq.record, freq.len); - if (!thisrec->u.databaseRecord) - return 0; - reclist->records[reclist->num_records] = thisrec; + reclist->records[reclist->num_records] = this_rec; reclist->num_records++; - *next = freq.last_in_set ? 0 : recno + 1; + *next = recno + 1; } - *num = reclist->num_records; return records; -#endif - return 0; } -void Yaz_Z_Server::piggyback (Z_SearchRequest *req, - Z_SearchResponse *res) +void Yaz_Z_Server::fetch_via_piggyback (Z_SearchRequest *req, + Z_SearchResponse *res) { bool_t *sr = (bool_t *)odr_malloc (odr_encode(), sizeof(*sr)); *sr = 1; - int *next = (int *)odr_malloc (odr_encode(), sizeof(*next)); - *next = 0; - - int *toget = (int *)odr_malloc (odr_encode(), sizeof(*toget)); - *toget = 0; - - int *presst = (int *)odr_malloc (odr_encode(), sizeof(*presst)); - *presst = 0; + int toget = 0; Z_RecordComposition comp, *compp = 0; int hits = *res->resultCount; @@ -197,53 +210,65 @@ void Yaz_Z_Server::piggyback (Z_SearchRequest *req, int *nulint = (int *)odr_malloc (odr_encode(), sizeof(*nulint)); *nulint = 0; - res->records = 0; - comp.which = Z_RecordComp_simple; /* how many records does the user agent want, then? */ if (hits <= *req->smallSetUpperBound) { - *toget = hits; + toget = hits; if ((comp.u.simple = req->smallSetElementSetNames)) compp = ∁ } else if (hits < *req->largeSetLowerBound) { - *toget = *req->mediumSetPresentNumber; - if (*toget > hits) - *toget = hits; + toget = *req->mediumSetPresentNumber; + if (toget > hits) + toget = hits; if ((comp.u.simple = req->mediumSetElementSetNames)) compp = ∁ } - else - *toget = 0; - if (*toget && !res->records) + if (toget && !res->records) { + res->presentStatus = (int *) odr_malloc (odr_encode(), sizeof(int)); + *res->presentStatus = Z_PRES_SUCCESS; res->records = - pack_records(req->resultSetName, 1, - toget, compp, next, presst, + pack_records(req->resultSetName, 1, toget, compp, + res->nextResultSetPosition, + res->presentStatus, req->preferredRecordSyntax); if (!res->records) return; - res->numberOfRecordsReturned = toget; - res->nextResultSetPosition = next; + if (res->records->which == Z_Records_DBOSD) + *res->numberOfRecordsReturned = + res->records->u.databaseOrSurDiagnostics->num_records; res->searchStatus = sr; res->resultSetStatus = 0; - res->presentStatus = presst; } else { if (hits) - *next = 1; + *res->nextResultSetPosition = 1; res->numberOfRecordsReturned = nulint; - res->nextResultSetPosition = next; res->searchStatus = sr; res->resultSetStatus = 0; res->presentStatus = 0; } } +void Yaz_Z_Server::fetch_via_present (Z_PresentRequest *req, + Z_PresentResponse *res) +{ + res->records = pack_records (req->resultSetId,*req->resultSetStartPoint, + *req->numberOfRecordsRequested, + req->recordComposition, + res->nextResultSetPosition, + res->presentStatus, + req->preferredRecordSyntax); + if (res->records->which == Z_Records_DBOSD) + *res->numberOfRecordsReturned = + res->records->u.databaseOrSurDiagnostics->num_records; +} + void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request) { Z_APDU *apdu_response; @@ -254,6 +279,10 @@ void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request) apdu_response = create_Z_PDU(Z_APDU_initResponse); recv_Z_init (apdu_request->u.initRequest, apdu_response->u.initResponse); + m_preferredMessageSize = + *apdu_request->u.initRequest->preferredMessageSize; + m_maximumRecordSize = + *apdu_request->u.initRequest->maximumRecordSize; send_Z_PDU(apdu_response); break; case Z_APDU_searchRequest: @@ -263,8 +292,8 @@ void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request) apdu_response->u.searchResponse); if (!apdu_response->u.searchResponse->records) { - piggyback(apdu_request->u.searchRequest, - apdu_response->u.searchResponse); + fetch_via_piggyback(apdu_request->u.searchRequest, + apdu_response->u.searchResponse); } send_Z_PDU(apdu_response); break; @@ -273,6 +302,9 @@ void Yaz_Z_Server::recv_Z_PDU (Z_APDU *apdu_request) apdu_response = create_Z_PDU(Z_APDU_presentResponse); recv_Z_present (apdu_request->u.presentRequest, apdu_response->u.presentResponse); + if (!apdu_response->u.presentResponse->records) + fetch_via_present(apdu_request->u.presentRequest, + apdu_response->u.presentResponse); send_Z_PDU(apdu_response); break; } -- 1.7.10.4