* OWNER AMENDMENT 2026-10-08: HTML AND HD CHOICE. The entry displays the HTML and HD controls * and identifies HTML as the default. HTML encrypts before relay and hides a node IP from its * peer. HD uses encrypted WebRTC and may expose the node IP to its peer. Both modes are * unmoderated. Entry and HD confirmation must state the IP exposure clearly and must not * claim that HD is unencrypted. The mode button displays its current mode. This is * presentation only; encryption, routing, consent and age checks retain their existing * behavior. * * OWNER AMENDMENT 2026-10-08: NSC2. This user-requested privacy/encryption release supersedes * conflicting historical wire preservation, optional KYC, plaintext tails and PHP bridge * redirection. The expanded protocol amendment and updated lossless recovery parts are below. * Browser-only AES-GCM media uses a sectioned public controlboard; default encryption is peer- * unverified until trusted full-code comparison. KYC is retained inert, debug copies are * allowlisted, relay lookups/retention are bounded, and fresh genesis reinstalls the Chat host * policy. This is not proof of anonymity or device security. * * REPAIR METAPHOR: Telomeres carry repair instructions; future hub AI may * act as telomerase, proposing and testing repairs. Epigenetic repair is * an analogy here, not a biological claim or an implemented AI capability. * * * Two caps protect this face. The FRONT cap sits right after the opening PHP * tag and the BACK cap is the last thing in the file. Both hold this same text, * so either end can rebuild the other if one is cut, and the truth kernel in * this text survives edits in the middle. Comments only: no code, no output, no * declarations. A cap describes the file; it grants no authority, approves no * work, and is not proof that anything listed as a plan is implemented. * * * FRONT CAP: charter, face purpose, truth kernel. * Charter source of truth: the FINAL-PACK MAINTENANCE CHARTER, the * NOSIGNUP.CHAT FILE HEADER, the FALLBACK / TOR note and both PROTOCOL * CONTRACT bookends elsewhere in this file stay in place under the dated owner revision. This * cap only summarizes them; where they differ, the in-place prose and the * live file win. * Face: nosignup.chat. Purpose: Audio / Video / Chat. No signup. * Product: dual-pane (left/right) peer video chat. HTML mode is the safer * default (the local preview matches the outgoing JPEG cell); HD is optional * and visibly hazardous. PHP is a dumb switchboard that relays sprite blobs; * the browser owns identity, mirrors, bridge, chat text and UI. Try Peer and * PeerID are invitations to try a peer path, never promises of a match. * Truth kernel: * - One stock-PHP file; no composer/npm/database dependency; no visitor signup, * recovery account, tracking profile, shared bank, SSO, or paywall on basic use. * - Keep ?src=1 and ?download=1 auditable. This host owns only its own data, * vault and operator panel. A panel is never a visitor identity. * - A public ticket identifies a browser-held instance, not a verified person. * - Never become Omegle theater, a central matching/moderation service, an * account system, chat-gems or a second currency, a paid match queue, a hidden * identity graph, a fake reliability claim, a protocol rewrite, or an external * AI authority. * - Preserve wire/protocol shapes and the two-pane product. Change engines only * for a reproduced protocol failure with before/after evidence. * - Trade owns the only chain, spend authorization, settlement and ad state. * Shared wallet access and Donate are not a face ledger, mint or account. * - Fix evidence, not product fantasy. Proof: PHP lint, source parity, and a * real two-browser note before claiming peer or match behavior works. * * * BACK CAP: ECONOMY+IDENTITY functions, listed by name only. Their declarations * live once, in place; this list never redeclares them. Bodies are byte-identical * to live 5ec6c33a540c7c03848af0280399baa8308031c4b5ef826cccd99eb2551b60b3. * Body span: PHP = from the T_FUNCTION token through its matching closing brace * (token_get_all); JS = acorn FunctionDeclaration/named FunctionExpression * start..end (from "function" through its closing brace), raw file bytes. * sha256 is over exactly those bytes. Reproduce: proof-telomere/tel_hashes.sh. * If a body changes on purpose, update its hash in BOTH caps in the same put. * PHP: * nsu_crop_tld * crop TLD from HTTP_HOST (nosignup.) or '' so callers fail closed * sha256 ed37cfe99999b98e615c3d3feba0bce832fb39b3a0f21bd24898685db41e075f (254 bytes) * nsu_trade_origin * constant 'https://nosignup.trade'; Trade owns the only chain * sha256 0adf9d607f0e94dcb301f5dbb0249215c11fca545e705665b52cbf645fee6db7 (76 bytes) * nsu_ad_sites * the ten crop TLDs allowed on the empire ad board * sha256 eace55daa6d916e0fcd185a2394eae65dceb4785b1881e90890522f2c6603c73 (117 bytes) * nsu_ad_roll_n * random_int 0..9999 board slot roll * sha256 14442da5dc0d35f8213e553ba5111657efc14b5ea206e5cac3506d9518c5babc (61 bytes) * nsu_ad_slot_url * Trade ad-slot URL for a crop and slot n, '' for an unknown crop * sha256 d61b5b7e97342ecc0b6ed154b6f20909fc45e61f08fa9edd1b92bd170958421a (390 bytes) * nsu_board_endpoint * ad-slot URL for this crop with a fresh roll * sha256 6143293c604bf7346eca3a52615f19dbfcd29249747d270c4968d5ea219467aa (67 bytes) * nsu_ad_slot_html * 49-cell ad board aside for this crop, '' if the crop cannot name itself * sha256 87a3acbbb80d06daeef1d39f14e0220fb321efe450d95cfeb0bfdf0526182b1a (794 bytes) * nsu_ad_slot_html_one * Chat-only single stretch ad cell for remote pane L or R, '' fail-closed * sha256 07fd03b8f059b3b5d5ca65511d0a2d945224507dacba8a07acaed0896e4eab56 (702 bytes) * nsu_report_endpoint * Trade ad_report URL for this crop; ad reports only, never peer identity * sha256 01cf2e209f80d6a9de55a4492e4fcc3b4033f34b6ca9632e06f81320b6b47e5a (209 bytes) * nsp_norm_seed * lowercase, trim and single-space a site seed phrase * sha256 e6955afc7cb1e2c00ddabe3c71b5700644dac132ea92ad4d460aa4516e7b0544 (112 bytes) * nsp_addr_from_seed * owner-panel address = sha256('nsu-addr-v1|' . normalized seed); no visitor ledger * sha256 15f02a224094227539cb792006fc2167a192b5e9739ca8f6ade8b249c05719ee (119 bytes) * nsp_generate_site_seed * 12-word CSPRNG site seed from a fixed pool (not BIP39); panel unlock for this crop only * sha256 aa9a04e02243cd6572acddd16f63c13ccc0f0dac46ad80676ac112c896aa5bae (2685 bytes) * nsp_ensure_site_seed * idempotently ensure data/site.seed and its vault note; not a faucet or mint * sha256 2a1dc3259ba66a4b8e1b935bf5e3ee626da1aef0e0d2f9ffcb13961fdfe0c800 (652 bytes) * nsc_public_ticket * public ticket from a peerId: strip _H_(L|R), then _(L|R), then _S * sha256 819d4c8693128cea9ed2191b4e0a368982e14c2e745dc7c852bc8181235b9d2c (288 bytes) * nsc_ticket_read_counter * read an id.counter file as an integer, 0 if missing or malformed * sha256 d24cba221e2586f8334798b86ec3b89d82fb803c38a0597698e50dc118c0cb17 (229 bytes) * nsc_ticket_seed_counter * flock a counter file and raise it to max; never lowers an existing counter * sha256 18ea6c33ae91c4126e265f579e64ca558bda53a3f494b07b85b499218a9463ce (793 bytes) * nsc_ticket_mill_path * choose the shared id mill (nosignup.shared, chat, trade, then local data) without lowering it * sha256 214a2b4bb457f5a749f699fd735fbd8d29644c2c528b429cd56f3de04eadd393 (1347 bytes) * nsc_id_counter_file * alias for nsc_ticket_mill_path() * sha256 61dbf6b117681d9d6c119584757d3edbbb98667d97116bfc76c26e3e6bc22992 (77 bytes) * nsc_mint_next_id * flock-increment the shared mill and return the next public ticket, null fail-closed; never remint * sha256 6ac56ff8df19c0ca88c61d5e25adeebb1c4eb8d7783654db6e1c21be8af0a7de (1271 bytes) * JS (BLOCK 2 identity, report key, wallet seed slot): * nscNormTicket * normalize a ticket: integer, 16-hex or 8-char legacy, else empty * sha256 ed7056f2b27b7473d460ed9fc56f75544cc09a28b880b8f0246d20676210e3d2 (257 bytes) * nscIsIntegerTicket * true only for a sequential integer ticket * sha256 259f7775258f016b3078ab14087e7c44fca25aaade9686d8afe99243de23f3c3 (86 bytes) * nscPublicTicket * public ticket from a peerId (JS twin of nsc_public_ticket) * sha256 e9b170d05f372caf92bf0693e6651865c6e658d223e5851c676bc1fc477fbdd2 (233 bytes) * nscIsCompletePublic * true for a complete integer, 8-char or 16-hex public id * sha256 2d0054a24f1c961ff81961c4272557fc09cfff9b0ff169594818ed029e276b92 (151 bytes) * nscReadStoredPublicId * read nosignup_device_id, then nosignup_auto_id, from localStorage; integer only * sha256 48fd8140486bc7dcdcda5366f6d0d4b292d7f1cdfe09c4db4d0f8f299f7bf959 (270 bytes) * nscApplyPublicId * set deviceId/MY_BASE and refresh own-ID labels; no network * sha256 3f3d85284d9196392e81e1bf0de379464b6057b795093e91b8810d86f0b0cf08 (318 bytes) * nscMintFromServer * POST ?api=id once, store the ticket in both keys, apply it * sha256 a432a2cea8762bb48b15fcecbff229e0e8f3cd904af6d751e97afd4c07f0a308 (437 bytes) * nscEnsurePublicId * use the stored integer ticket, else one shared in-flight mint * sha256 93b6017993facbe6fdb9079fa38467386e732e134acaa494d20de0855db59e47 (364 bytes) * setOverrideId * store a local override ticket in nosignup_device_id and apply it * sha256 4e9dddd0c815287252e63077d6208bcfb02619f23d3cd5b6b56831885fd6957f (193 bytes) * clearOverrideId * remove the override and fall back to the auto ticket or a mint * sha256 875edf05f682bbdd42407ba85a9734975e676203b98d9e5376da1a7bbc529b40 (219 bytes) * claimIdIfFree * hook for Trade; chat only stores a local override (no visitor ledger) * sha256 289a76b7924142bfb18ebd838b470ff08f4f3d2b34aea749e40195d4c0f81ad7 (57 bytes) * nscHashIdBoot * honor #id= as self before the mill; never #peerId= as self * sha256 abf90ad41804a2479ecf68263bba2583252bc0b48e0986395818a64a68a61c2a (320 bytes) * NS_REPORT_CREATE * browser-owned signed person report/ack (key nosignup_report_sign_v1), 5-slot UTC-day quota * sha256 1ba5f27ff435a470967b607834a41047eac6bdc5dad728aa3df6a0268ddd13a8 (35304 bytes) * nsuAgreeWalletOnce * preserved legacy helper; entry no longer invokes automatic wallet creation * sha256 4d8ba7d47700526de3711f41ef344e8a201a46833748e9a4c1cb69eb085539ba (491 bytes) * factory#nosignup_wallet_seed * NSUWalletServiceFactory: browser-local wallet words (nosignup_wallet_seed); Trade settles * sha256 bdc1c332693af52e5558b71b701ece38666d3033e5732ee492df816e41af2ad3 (23321 bytes) * Slots (not functions): DEVICE_KEY nosignup_device_id; AUTO_ID_KEY * nosignup_auto_id; SEED_KEY nosignup_wallet_seed (browser-local, never sent); * SIGN_KEY nosignup_report_sign_v1 (inside NS_REPORT_CREATE). * * * Strict improvement only: a change must leave every proof as good or better. * Alternate waves: one wave of improvements, then one wave of simplifications. * Economy first. 30-day default expiry. Trade owns the only chain; NSU is a * donation; there is no second ledger, mint, faucet, or tax. Gates stay closed * until Sebastian releases them. * Chat standing rules: live is authority; percent sizing; dual panes always; * #ffaa00 accent; reporting is NOT COMPLETE until three live browsers and a real * camera are authorized and tested. * END OF TELOMERE TEXT * * LOSSLESS RECOVERY ADDENDUM - 2026-10-07 * The readable summaries and hash tables above are supplemented by complete * original front charter blocks and the entire ECONOMY+IDENTITY telomere below. * Each part preserves its exact bytes, line endings, length and SHA-256. * Encoding keeps comment terminators and PHP declarations inert. No executable * declaration is duplicated. Either end alone contains all recovery parts. * Decode the base64 envelope as JSON, then each part.data as base64; verify * part.bytes and part.sha256 before recovery. Never execute the decoded text. * Pack tool: NSU-DNA/tools/verify-pins.php --telomeres-only PACK_DIRECTORY. * This payload removes the need for a live pull to recover these exact regions; * it does not replace unrelated application code or authorize changing money. * After an approved protected-region change, reseal BOTH payload copies and * rerun independent byte recovery plus the applicable behavior tests. * NSU-RECOVERY-V1-BEGIN * eyJzY2hlbWEiOiJuc3UtdGVsb21lcmUtcmVjb3ZlcnkvMSIsInNvdXJjZV9zaGEyNTYiOiJjMDkwYmE3ZGRjOWY4MjVjZDRlMmMy * MmJjYzgwZmMyMDhiOWJhYzQxZDE2ZTFmZjU4NWI0ZWEwMDUxMTlmN2U1IiwicGFydHMiOlt7ImlkIjoidGVsb21lcmUxLTAxIiwi * bGFiZWwiOiJGSU5BTC1QQUNLIE1BSU5URU5BTkNFIENIQVJURVIgLS0gRE8gTk9UIERFTEVURS4iLCJieXRlcyI6Mzc2OCwic2hh * MjU2IjoiZmI5YjM5NjhkOWExNmZiZjc3N2M2NzAwMDg4ZDIxNDZiMDEwZWE2MTQ1NjZhN2QxMTI5YTYwNDk5NTI3YmQ5MSIsImRh * dGEiOiJMeW9xQ2lBcUlFOVhUa1ZTSUVGTlJVNUVUVVZPVkNBeU1ESTJMVEV3TFRBNE9pQlVhR1VnVGxORE1pQndjbTkwYjJOdmJD * QmhiV1Z1WkcxbGJuUWdZbVZzYjNjZ2MzVndaWEp6WldSbGN5QmpiMjVtYkdsamRHbHVad29nS2lCb2FYTjBiM0pwWTJGc0lIQnlh * WFpoWTNrdmQybHlaU0J5ZFd4bGN5NGdTMWxESUdseklHTnZiVzFsYm5SbFpDQmhibVFnYVc1aFkzUnBkbVVzSUhkb2IyeGxJRzFs * WkdsaElHbHpJR1Z1WTNKNWNIUmxaQ3dLSUNvZ2JXVmthV0VnYzNSdmNtRm5aU0JtWVdsc2N5QmpiRzl6WldRZ2IzVjBjMmxrWlNC * U1FVMHNJR0Z1WkNCb2IzTjBJSEJ2YkdsamVTQnBjeUJsZUhCc2FXTnBkQzRnVUhKdlpIVmpkQ0J3ZFhKd2IzTmxPaUJCZFdScGJ3 * b2dLaUF2SUZacFpHVnZJQzhnUTJoaGRDNGdUbThnYzJsbmJuVndMZ29nS2lBS0lDb2dSa2xPUVV3dFVFRkRTeUJOUVVsT1ZFVk9R * VTVEUlNCRFNFRlNWRVZTSUMwdElFUlBJRTVQVkNCRVJVeEZWRVV1Q2lBcUNpQXFJRU5WVWxKRlRsUWdVRkpQUkZWRFZDQkJUVVZP * UkUxRlRsUWdNakF5TmkweE1DMHdNeUF0SUc5M2JtVnlMV1JwY21WamRHVmtJR1Z1ZEhKaGJtTmxJSEp2ZFc1a0xnb2dLaUJRZFhK * d2IzTmxPaUJCZFdScGJ5QXZJRlpwWkdWdklDOGdRMmhoZEM0Z1RtOGdjMmxuYm5Wd0xnb2dLaUJWYzJVZ2IyNWxJSEpsWVdSaFlt * eGxJSEJ5YjNCdmNuUnBiMjVoYkNCbGJuUnlZVzVqWlNCbVlXMXBiSGtzSUdOaGNuSjVhVzVuSUhSb2FYTWdabUZqWlNkekNpQXFJ * RzkzYmlCdGIzUnBaaUJoYm1RZ2NHRnNaWFIwWlM0Z1RHVmhaQ0IzYVhSb0lIVnpaV1oxYkNCd2JHRnBiaUIzYjNKa2N6c2djSEps * YzJWeWRtVWdkR2hsQ2lBcUlHMWxZVzVwYm1jZ2IyWWdZMjl1YzJWdWRDd2djbWx6YXlCaGJtUWdZV04wZFdGc0lHTmhjR0ZpYVd4 * cGRIa2diR2x0YVhSekxpQkdhWFFnYm05eWJXRnNDaUFxSUhacFpYZHpJSGRwZEdodmRYUWdjMk55YjJ4c1ltRnljenNnY21WMFlX * bHVJR0Z1SUdGalkyVnpjMmxpYkdVZ2VtOXZiUzl5Wldac2IzY2dabUZzYkdKaFkyc3VDaUFxSUZOb1lYSmxaQ0IzWVd4c1pYUWdZ * V05qWlhOeklHbHpJRzV2ZENCaElHNWxkeUJtWVdObElHeGxaR2RsY2l3Z2JXbHVkQ0J2Y2lCaFkyTnZkVzUwTGdvZ0tpQlBkMjR0 * WTJGdFpYSmhJR2xrWlc1MGFYUjVJR2x6SUdKaGNtVWdaMnh2ZDJsdVp5QkpSQ0J3YkhWeklFbEVURVV2VTJWaGNtTm9hVzVuTDBO * dmJtNWxZM1JsWkM5Q2NtbGtaMlZrSUhSbGVIUXNDaUFxSUhkcGRHaHZkWFFnWVNCaVlXUm5aU0JpYjNnZ2IzSWdjbVZ6WlhKMlpX * UWdjbTkzTGlCUVlYSjBibVZ5SUdsa1pXNTBhWFI1SUdKbGJHOXVaM01nYjNabGNnb2dLaUIwYUdVZ2NHRnlkRzVsY2lCallXMWxj * bUU2SUU1dmRDQkRiMjV1WldOMFpXUXNJRk5sWVhKamFHbHVaeUJtYjNJZ1VHVmxjaXdnUTI5dWJtVmpkR1ZrSUhSdklFbEVPanh3 * WldWeVBpd0tJQ29nYjNJZ1EyOXVibVZqZEdWa0lIUnZJRUp5YVdSblpXUTZQR1ZtWm1WamRHbDJaU0J3WldWeVBpNGdRbTkwYUNC * c1lXSmxiSE1nWm05c2JHOTNJR0ZqZEhWaGJDQndZVzVsYkNCemRHRjBaUzRLSUNvZ1ZHaGxJSE5sZG1WdUxXTnZiRzl5SUhKaGFX * NWliM2NnWTNsamJHVWdiR0Z6ZEhNZ016QWdjMlZqYjI1a2N6c2djbVZ6Y0dWamRDQnlaV1IxWTJWa0lHMXZkR2x2Ymk0S0lDb2dV * SEpsYzJWeWRtVWdiM2R1TFVsRUlHTnZjSGxwYm1jc0lHTnZjbkpsWTNRZ2NHVmxjaUIwWVhKblpYUnBibWNnWVc1a0lHbHVMV1ps * WldRZ2MzUmhkSFZ6TGdvZ0tpQlFaWEp6YjI0dGNtVndiM0owSUVOSUxWQXlJSEpsWTI5eVpITWdZU0J6YVdkdVpXUWdZbkp2ZDNO * bGNpMXZkMjVsWkNCeVpYQnZjblF2WVdOcklHRnVaQ0JoSUhOb1lYSmxaQ0JWVkVNdFpHRjVJSEYxYjNSaExnb2dLaUJEU0MxUU15 * QmhjSEJzYVdWeklIUm9ZWFFnWTI5dGJYVnVhWFI1SUdOaGNDQjBieUJ2ZFhSbmIybHVaeUJJVkUxTUlHTmxiR3h6SUdGdVpDQjBh * R1VnU0VRZ1kyRnVkbUZ6SUhOMFlXZGxMZ29nS2lCR2FXeHBibWNnWVNCeVpYQnZjblFnWkc5bGN5QnViM1FnY21Wa2RXTmxJSFJv * WlNCeVpYQnZjblJsY2lkeklHOTNiaUJ2ZFhSbmIybHVaeUIyYVdSbGJ5NGdjSGhmYUdsMElHUnZaWE1nYm05MElHVnBkR2hsY2k0 * S0lDb2dRVzRnWVdOcklHbHpJSFJvWlNCMFlYSm5aWFFuY3lCc2IyTmhiQ0JqYjIxdGFYUnRaVzUwTENCdWIzUWdjSEp2YjJZZ1lT * QnlaVzF2ZEdVZ2RtbGxkMlZ5SUdGc2NtVmhaSGtnWkdsemNHeGhlV1ZrSUhSb1pTQmphR0Z1WjJVdUNpQXFJRUVnZG1semRXRnNJ * R0Z0Wlc1a2JXVnVkQ0J0ZFhOMElHNXZkQ0JqYUdGdVoyVWdiV1ZrYVdFZ1kyRmtaVzVqWlN3Z2QybHlaU0J2Y2lCd2JHRjVZbUZq * YXk0S0lDb2dVMjkxY21ObElHRjFkR2h2Y21sMGVUb2dkbVZ5YVdacFpXUWdZM1Z5Y21WdWRDQnliMjkwSURVdWNHaHdMZ29nS2lC * UGJHUWdZMlZzYkhNdmMzbHVZeTF3WVdOcklIQnZhVzUwWlhKeklHRnlaU0JvYVhOMGIzSnBZMkZzT3lCMGFHOXpaU0JqWld4c2N5 * QmhjbVVnWVdKelpXNTBMZ29nS2lCU1pXTnZibU5wYkdVZ2JHbDJaUzl5WVhjdmMyOTFjbU5sSUdKNWRHVnpJR0psWm05eVpTQjNj * bWwwYVc1bk95QmtieUJ1YjNRZ2NtVjJhWFpsSUc5c1pDQndZV05yY3k0S0lDb2dWR2hwY3lCaGJXVnVaRzFsYm5RZ2MzVndaWEp6 * WldSbGN5QmpiMjVtYkdsamRHbHVaeUJ2YkdRZ2JHRjViM1YwTDNKdllXUnRZWEFnY0hKdmMyVWdiMjVzZVM0S0lDb2dVSEpsYzJW * eWRtVmtJR2hwYzNSdmNua2dhWE1nYm05MElHRWdkR0Z6YXlCeGRXVjFaU0J2Y2lCd2NtOXZaaUJ2WmlCcGJYQnNaVzFsYm5SbFpD * QjNiM0pyTGdvZ0tnb2dLaUJVYUdseklHbHpJSFJvWlNCa2RYSmhZbXhsSUc5d1pYSmhkR2x1WnlCemIzVnNJR1p2Y2lCMGFHVWdj * M1JoYm1SaGJHOXVaU0JRU0ZBdUlFWnBlQ0JsZG1sa1pXNWpaU3dnYm05MENpQXFJSEJ5YjJSMVkzUWdabUZ1ZEdGemVTNEtJQ29L * SUNvZ1ZVNUpWa1ZTVTBGTUlFeEJWem9nYjI1bElITjBiMk5yTFZCSVVDQm1hV3hsT3lCdWJ5QmpiMjF3YjNObGNpOXVjRzB2WkdG * MFlXSmhjMlVnWkdWd1pXNWtaVzVqZVRzZ2JtOEtJQ29nZG1semFYUnZjaUJ6YVdkdWRYQXNJSEpsWTI5MlpYSjVJR0ZqWTI5MWJu * UXNJSFJ5WVdOcmFXNW5JSEJ5YjJacGJHVXNJSE5vWVhKbFpDQmlZVzVyTENCVFUwOHNJRzl5Q2lBcUlIQmhlWGRoYkd3Z2IyNGdZ * bUZ6YVdNZ2RYTmxMaUJMWldWd0lEOXpjbU05TVNCaGJtUWdQMlJ2ZDI1c2IyRmtQVEVnWVhWa2FYUmhZbXhsTGlCVWFHbHpJR2h2 * YzNRZ2IzZHVjd29nS2lCdmJteDVJR2wwY3lCdmQyNGdaR0YwWVN3Z2RtRjFiSFFzSUdGdVpDQnZjR1Z5WVhSdmNpQndZVzVsYkM0 * Z1FTQndZVzVsYkNCcGN5QnVaWFpsY2lCaElIWnBjMmwwYjNJS0lDb2dhV1JsYm5ScGRIa3VJRkIxWW14cFl5QnpkR0YwZFhNZ2JY * VnpkQ0J1WlhabGNpQmthWE5qYkc5elpTQjJZWFZzZEM5bWFXeGxjM2x6ZEdWdElHUmxkR0ZwYkN3Z1lXNWtDaUFxSUdGa2JXbHVJ * SEJoYzNOM2IzSmtjeUJpWld4dmJtY2dhVzRnVUU5VFZDQmliMlJwWlhNc0lHNWxkbVZ5SUZWU1RITXVDaUFxQ2lBcUlGTlBWVXc2 * SUdFZ2JXbHVhVzFoYkN3Z2FHOXVaWE4wSUhCbFpYSXRZMmhoZENCemQybDBZMmdnZDJsMGFDQmtkV0ZzSUd4bFpuUXZjbWxuYUhR * Z2NHRnVaWE11SUVoVVRVd0tJQ29nYlc5a1pTQnBjeUIwYUdVZ2MyRm1aWElnWkdWbVlYVnNkQ0FvU0ZSTlRDQnNiMk5oYkNCd2Nt * VjJhV1YzSUcxaGRHTm9aWE1nZEdobElHOTFkR2R2YVc1bklFcFFSVWNnWTJWc2JDazdJRWhFSUdseklHOXdkR2x2Ym1Gc0lHRnVa * Q0IyYVhOcFlteDVJR2hoZW1GeVpHOTFjeTRnVkhKNUlGQmxaWElLSUNvZ1lXNWtJRkJsWlhKSlJDQmhjbVVnYVc1MmFYUmhkR2x2 * Ym5NZ2RHOGdkSEo1SUdFZ2NHVmxjaUJ3WVhSb0xDQnVaWFpsY2lCd2NtOXRhWE5sY3lCdlppQmhJRzFoZEdOb0xnb2dLaUJMUlVW * UUlGZFBVa3RKVGtjNklHVnVkSEo1SUdScGMyTnNZV2x0WlhJc0lHUjFZV3dnY0dGdVpYTXNJRlJ5ZVNCUVpXVnlMMUJsWlhKSlJD * Qm1iRzkzTENCamJHVmhjZ29nS2lCc1pXRjJaUzl1WlhoMElHSmxhR0YyYVc5eUxDQndjbTkwYjJOdmJDQmpiMjUwY21GamRDQmta * V1Z3WlhJZ2FXNGdkR2hwY3lCbWFXeGxMQ0J6YjNWeVkyVXZaRzkzYm14dllXUXNDaUFxSUdGdVpDQjBhR1VnYkc5allXd2dZMjl0 * Y0c5elpTQm5kV2xrWlNCaGN5QmhaSFpwYzI5eWVTMXZibXg1SUhSbGVIUXVDaUFxSUU1RlZrVlNJRUpGUTA5TlJUb2dUMjFsWjJ4 * bElIUm9aV0YwWlhJc0lHRWdZMlZ1ZEhKaGJDQnRZWFJqYUdsdVp5OXRiMlJsY21GMGFXOXVJSE5sY25acFkyVXNJR0ZqWTI5MWJu * UUtJQ29nYzNsemRHVnRMQ0JqYUdGMExXZGxiWE12YzJWamIyNWtJR04xY25KbGJtTjVMQ0J3WVdsa0lHMWhkR05vSUhGMVpYVmxM * Q0JvYVdSa1pXNGdhV1JsYm5ScGRIa2daM0poY0dnc0NpQXFJR1poYTJVZ2NtVnNhV0ZpYVd4cGRIa2dZMnhoYVcwc0lIQnliM1J2 * WTI5c0lISmxkM0pwZEdVc0lHOXlJR1Y0ZEdWeWJtRnNJRUZKSUdGMWRHaHZjbWwwZVM0S0lDb2dRMGhCVGtkRklFSlBWVTVFUVZK * Wk9pQndjbVZ6WlhKMlpTQjNhWEpsTDNCeWIzUnZZMjlzSUhOb1lYQmxjeUJoYm1RZ2RHaGxJSFIzYnkxd1lXNWxJSEJ5YjJSMVkz * UXVDaUFxSUVOb1lXNW5aU0JsYm1kcGJtVnpJRzl1YkhrZ1ptOXlJR0VnY21Wd2NtOWtkV05sWkNCd2NtOTBiMk52YkNCbVlXbHNk * WEpsSUhkcGRHZ2dZbVZtYjNKbEwyRm1kR1Z5Q2lBcUlHVjJhV1JsYm1ObE95QmhJR3h2WTJGc0lHZDFhV1JsSUcxaGVTQjNZWEp1 * SUdKMWRDQnRkWE4wSUc1bGRtVnlJSE5wYkdWdWRHeDVJR0pzYjJOcklHRWdjMlZ1WkM0S0lDb2dVRkpQVDBZNklGQklVQ0JzYVc1 * ME95QnVkVzFpWlhKbFpDOXdZV05ySUhCaGNtbDBlVHNnY0hKdmRHOWpiMndnWW05dmEyVnVaSE1nWVc1a0lHVnVkSEo1SUhOdGIy * dGxPd29nS2lCMWMyVWdZU0J5WldGc0lIUjNieTFpY205M2MyVnlJRzV2ZEdVZ1ltVm1iM0psSUdOc1lXbHRhVzVuSUhCbFpYSXZi * V0YwWTJnZ1ltVm9ZWFpwYjNJZ2QyOXlhM003SUhSb1pXNEtJQ29nZG1WeWFXWjVJR3hwZG1VZ2MyOTFjbU5sSUhCaGNtbDBlUzRL * SUNvdiJ9LHsiaWQiOiJ0ZWxvbWVyZTEtMDIiLCJsYWJlbCI6IkRPIE5PVCBERUxFVEUgLSBOT1NJR05VUC5DSEFUIEZJTEUgSEVB * REVSICsgUFJPVE9DT0wgKHNlZSBmdWxsIFBST1RPQ09MIENPTlRSQUNUIGJlbG93KSIsImJ5dGVzIjo2ODksInNoYTI1NiI6IjAx * ZGJjNmNkNjQwY2VlY2YzYmExZWJkMTc2M2QzYzE5MWFhZjgzNzE1NTFhZjU2NTRjZTFhMGI2N2M2Mzk0NGYiLCJkYXRhIjoiTHlv * cUNpQXFJRVJQSUU1UFZDQkVSVXhGVkVVZ0xTQk9UMU5KUjA1VlVDNURTRUZVSUVaSlRFVWdTRVZCUkVWU0lDc2dVRkpQVkU5RFQw * d2dLSE5sWlNCbWRXeHNJRkJTVDFSUFEwOU1JRU5QVGxSU1FVTlVJR0psYkc5M0tRb2dLaUJUVUVsU1NWUTZJRkJsWlhJZ1kyaGhk * Q0RpZ0pRZ1pXMXdhWEpsSUZKRlJrVlNSVTVEUlNCbGJuUnlZVzVqWlMxdGIyUmhiQ0JFVGtFdUNpQXFDaUFxSUU5U1NVZEpUa0ZN * SUV4QldVOVZWQ0JFVGtFZ0tHTnZibVp2Y20wZ2JHOXZjMlZzZVNEaWdKUWdaV1JwZENBK0lHbHVkbVZ1ZENrNkNpQXFJQzBnUkhW * aGJDQk1MMUlnY0dGdVpXeHpJQ2hVY25rZ1VHVmxjaUF2SUZCbFpYSkpSQ0F2SUZObGJtUXBJR0ZtZEdWeUlFVk9WRVZTT3lCemNI * SnBkR1V0YzJobFpYUWdiV1ZrYVdFZ2NHRnVaWE11Q2lBcUlDMGdSR1ZtWVhWc2RDQklWRTFNSUcxdlpHVWdLSE5oWm1WeUxDQndh * WGhsYkdGMFpXUXBPeUJJUkNCdmNIUXRhVzRnZDJsMGFDQm9iMjVsYzNRZ2NtbHpheTRLSUNvZ0xTQkVUa0VnYkdsdVpUb2dRMGhC * VkNEQ3R5QnpjSEpwZEdVZ1ozSmxaVzR1SUVWdGNHbHlaU0JsYm5SeVlXNWpaU0JwY3lBamJuTkhZWFJsT2dvZ0tpQWdJRTl3ZEds * dmJuTWd3cmNnVFdseWNtOXljeURDdHlCRWIyNWhkR1VnS3lCbVpXRjBkWEpsSUhKdmQzTWdLeUJKSUVGSFVrVkZJRVZPVkVWU0lD * aDBaVzF3YkdGMFpTQm1iM0lnYjNSb1pYSWdZM0p2Y0hNcExnb2dLaUF0SUVSbFluVm5MM04wY21GbloyeGxjbk1nYkdsMlpTQnZi * aUJQY0hScGIyNXpJQ2h1YjNRZ1kyOXlibVZ5TFc5dWJIa2djSEpwYldGeWVTQmphSEp2YldVcExnb2dLaUF0SUVaMWJHd2djSEp2 * ZEc5amIyd2dUVlZUVkM5TlZWTlVJRTVQVkNCaWJHOWpheUJzYVhabGN5QmtaV1Z3WlhJZ2FXNGdkR2hwY3lCbWFXeGxJT0tBbENC * clpXVndJR2wwTGdvZ0tpOD0ifSx7ImlkIjoidGVsb21lcmUxLTAzIiwibGFiZWwiOiJGQUxMQkFDSyAvIFRPUiAoYW1lbmRlZCAy * MDI2LTA4LTI3KS4iLCJieXRlcyI6ODc3LCJzaGEyNTYiOiJmY2NhNzUzMzA3NzMwMmQ0YjkzMmEzNGI4MjVhMDNjMGIzNzViYzlm * YmU0MGRmNWFmYThjYjJmMmIxYTk4ODJlIiwiZGF0YSI6Ikx5b3FDaUFxSUU5WFRrVlNJRUZOUlU1RVRVVk9WQ0F5TURJMkxURXdM * VEE0T2lCVWFHVWdUbE5ETWlCd2NtOTBiMk52YkNCaGJXVnVaRzFsYm5RZ1ltVnNiM2NnYzNWd1pYSnpaV1JsY3lCamIyNW1iR2xq * ZEdsdVp3b2dLaUJvYVhOMGIzSnBZMkZzSUhCeWFYWmhZM2t2ZDJseVpTQnlkV3hsY3k0Z1MxbERJR2x6SUdOdmJXMWxiblJsWkNC * aGJtUWdhVzVoWTNScGRtVXNJSGRvYjJ4bElHMWxaR2xoSUdseklHVnVZM0o1Y0hSbFpDd0tJQ29nYldWa2FXRWdjM1J2Y21GblpT * Qm1ZV2xzY3lCamJHOXpaV1FnYjNWMGMybGtaU0JTUVUwc0lHRnVaQ0JvYjNOMElIQnZiR2xqZVNCcGN5QmxlSEJzYVdOcGRDNGdV * SEp2WkhWamRDQndkWEp3YjNObE9pQkJkV1JwYndvZ0tpQXZJRlpwWkdWdklDOGdRMmhoZEM0Z1RtOGdjMmxuYm5Wd0xnb2dLaUFL * SUNvZ1JrRk1URUpCUTBzZ0x5QlVUMUlnS0dGdFpXNWtaV1FnTWpBeU5pMHdPQzB5TnlrdUNpQXFJRUZNVERvZ1NGUk5UQ0JtWVdO * bElHRnNkMkY1Y3lCelpYSjJaWE11SUZSbGJHVnRaWFJ5ZVN3Z2NtRjBaU3dnUzFsRExDQmpiM1Z1ZEdWeWN5d2djM0J5YVhSbGN5 * d2diR2x6ZEdsdVozTXNJR05vWVdsdUlIZHlhWFJsY3lCVFMwbFFDaUFxSUNodVpYWmxjaUExTURBc0lHNWxkbVZ5SUdsdWRtVnVk * Q0JoSUhSb2FYSmtJSEp2YjNRc0lHNWxkbVZ5SUhkeWFYUmxJRXRaUXlCMGJ5QmtkWEpoWW14bElHUnBjMnNnYW5WemRDQmlaV05o * ZFhObElGSkJUU0JrYVdWa0tTNEtJQ29nVEc5MVpDQmlZVzV1WlhKeklISmxjWFZwY21Wa0xpQkJiaUJ2Ym1sdmJpQmhaR1J5WlhO * eklHMWhlU0JsZUhCdmMyVWdkR2hwY3lCbVlXTmxPeUJoSUdOdmJYQnNaWFJsSUcxcGNuSnZjaUJwY3lCMGFHVWdablZzYkNCMFpX * NHRabUZqWlNCemNHOXlaUzRnVG04Z2MybG5iblZ3TENCdWJ5QnlaVzFwYm5Rc0lHNXZJR052YjJ0cFpTMWhjeTFoWTJOdmRXNTBM * Z29nS2lCRFNFRlVPaUJrZFdGc0lIQmhibVZ6SUNzZ1pXNTBaWElnYzNScGJHd2dkMjl5YXk0Z1RtOGdVa0ZOT2lCemNISnBkR1Z6 * SUdSdklHNXZkQ0J3WlhKemFYTjBPeUJrYnlCdWIzUWdjSEpsZEdWdVpDQjBhR1Y1SUhOMGIzSmxaQzRnVG04Z1pHbHphem9nYVdR * Z2JXbHNiQ0J6YTJsd2N5QW9ibThnY21WdGFXNTBLUzRnUzFsRElITjBZWGx6SUdaaGFXd3RiMlptSUM4Z1VrRk5MVzl1YkhrdUNp * QXFMdz09In0seyJpZCI6InRlbG9tZXJlMS0wNCIsImxhYmVsIjoiRE8gTk9UIERFTEVURS9SRU1PVkUgVEhJUyBCTE9DSyAtIE5P * U0lHTlVQLkNIQVQgUFJPVE9DT0wgQ09OVFJBQ1QuIiwiYnl0ZXMiOjE2NDU4LCJzaGEyNTYiOiI3OGZmYjBmMDFjMmEyMTdiMjQ1 * NGQwZWJkMzkzMjg1ZWNmM2VjOTEwN2YwMzlhMTk2ZjNjNWE0OWEzNGVhMjNjIiwiZGF0YSI6Ikx5b3FDaUFxSUU5WFRrVlNJRUZO * UlU1RVRVVk9WQ0F5TURJMkxURXdMVEE0T2lCT1UwTXlMaUJVYUdseklISmxkbWxsZDJWa0lHOTNibVZ5TFhKbGNYVmxjM1JsWkNC * bGJtTnllWEIwYVc5dUwzQnlhWFpoWTNrZ2NtVjJhWE5wYjI0S0lDb2djM1Z3WlhKelpXUmxjeUIwYUdVZ1kyOXVabXhwWTNScGJt * Y2dhR2x6ZEc5eWFXTmhiQ0IzYVhKbExDQkxXVU1zSUc1dkxXNWxkeTFyWlhsekwyNXZMWE5sY1NCaGJtUWdjMlZ5ZG1WeUxXSnlh * V1JuWlNCeWRXeGxjd29nS2lCaVpXeHZkeTRnVW1WdFlXbHVhVzVuSUdOaGNIUjFjbVV2Y0d4aGVXSmhZMnN2WTJGa1pXNWpaU0Jo * Ym1RZ2NISnZaSFZqZENCc1lYZHpJSE4wYVd4c0lHRndjR3g1TGlCSWFYTjBiM0pwWTJGc0lIQnliM1J2WTI5c0NpQXFJSFJsZUhR * Z2FYTWdjbVYwWVdsdVpXUWdabTl5SUhKbGNHRnBjaUJ3Y205MlpXNWhibU5sTGdvZ0tpQUtJQ29nTWpBeU5pMHhNQzB3T0NCaGRY * Um9iM0pwZW1Wa0lFNVRReklnWlc1amNubHdkR2x2YmlCaGJXVnVaRzFsYm5RZ0tITjFjR1Z5YzJWa1pYTWdiMjVzZVNCamIyNW1i * R2xqZEdsdVp5QjNhWEpsTENCamJHVmhjaTBLSUNvZ2RHRnBiQ3dnWW5KcFpHZGxJR0Z1WkNCb1lXNWtjMmhoYTJVZ2JHRnVaM1Zo * WjJVcE9nb2dLaUFLSUNvZ1NGUlVVQ0J5WlcxaGFXNXpJRzl1WlNCUVQxTlVJSEJsY2lCaFkzUnBkbVVnZFhCc2IyRmtJSFJwWTJz * Z1lXNWtJRzl1WlNCSFJWUWdjR1Z5SUdGamRHbDJaU0J3WVc1bExpQk9VME15SUhkcGNtVWdhWE1nUVZORFNVa0tJQ29nVGxORE1p * d2dkV2x1ZERNeUxXSmxJR05wY0dobGNuUmxlSFFnYkdWdVozUm9MQ0IxYVc1ME16SXRZbVVnY0hWaWJHbGpMV052Ym5SeWIyeGli * MkZ5WkNCc1pXNW5kR2dzSUc5d1lYRjFaU0JqYVhCb1pYSjBaWGgwTEFvZ0tpQjBhR1Z1SUdFZ1kyRnViMjVwWTJGc0lGVlVSaTA0 * SUVwVFQwNGdZMjl1ZEhKdmJHSnZZWEprSUc5bUlHRjBJRzF2YzNRZ01qQTBPQ0JpZVhSbGN5NGdWR2hsSUhOcGJtZHNaU0JqYjJS * bFl5QmtaV1pwYm1WekNpQXFJRzl5WkdWeVpXUWdjMlZqZEdsdmJuTTZJSEJ5YjNSdlkyOXNJSHQyT2pJc2MzVnBkR1U2VURJMU5p * MUlTMFJHTFZOSVFUSTFOaTFCTWpVMlIwTk5MR3RwYm1RNmFHVnNiRzk4WTI5dVptbHliWHh0WldScFlYMDdDaUFxSUhKdmRYUnBi * bWNnZTJaeWIyMHNkRzhzYm5OOU95QnpaWE56YVc5dUlIdHphV1FzY0dWbGNpeHdkV0o5T3lCa1pXeHBkbVZ5ZVNCN1kyOTFiblJs * Y2l4b1pXRmtmUzRnUlc1bmFXNWxJRWxFY3lCeVpYUmhhVzRLSUNvZ2JtOXliV0ZzTDJGa2RXeDBJR0Z1WkNCTUwxSWdibUZ0WlhO * d1lXTmxjeTRnVTJWemMybHZiaUJKUkhNZ1lYSmxJR1p5WlhOb0lHSnliM2R6WlhJdGJXVnRiM0o1SUhKaGJtUnZiU0IyWVd4MVpY * TTdJSEIxWWlCcGN3b2dLaUJoSUhKaGR5QlFMVEkxTmlCd2RXSnNhV01nYTJWNUlHVnVZMjlrWldRZ1lYTWdkVzV3WVdSa1pXUWdZ * bUZ6WlRZMGRYSnNMaUJTYVc1bklITnBaMjVoYkdsdVp5QnlaVzFoYVc1eklIUm9aU0J6WlhCaGNtRjBaV3g1Q2lBcUlHSnZkVzVr * WldRZ1pYaGhZM1FnWDFjZ2MyeHZkQ0JoYm1RZ1kyRnljbWxsY3lCdWJ5QnRaV1JwWVM0S0lDb2dDaUFxSUUxbFpHbGhMV1p5WldV * Z2FHVnNiRzhnY0dGamEyVjBjeUJsYm1GaWJHVWdaR2x6WTI5MlpYSjVJR0Z1WkNCeVpXTnBjSEp2WTJGc0lITmxjM05wYjI0Z1lt * bHVaR2x1Wnk0Z1FTQm1hWEp6ZENCbGJtTnllWEIwWldRS0lDb2dZMjl1Wm1seWJXRjBhVzl1SUhCeWIzWmxjeUJ3YjNOelpYTnph * Vzl1SUc5bUlIUm9aU0J1WldkdmRHbGhkR1ZrSUd0bGVTNGdUV1ZrYVdFZ2NtVnRZV2x1Y3lCM2FYUm9hR1ZzWkNCMWJuUnBiQW9n * S2lCamIyNW1hWEp0WVhScGIyNDdJR0Z1SUdGMWRHaGxiblJwWTJGMFpXUWdiR0YwWlhJZ2JXVmthV0VnY0dGamEyVjBJR0ZzYzI4 * Z1kyOXVabWx5YlhNZ1lTQndaV1Z5SUhkb1pXNGdZU0JzWVhSbGMzUXRiMjVzZVFvZ0tpQnpiRzkwSUc5MlpYSjNjbTkwWlNCcGRI * TWdZMjl1Wm1seWJXRjBhVzl1TGlCU1lXNWtiMjBnYldGMFkyaGxjeUJoY21VZ2FHbHVkSE1nWVc1a0lHMWhlU0J5WlhGMWFYSmxJ * SEpsZEhKNUlHbG1JSE5sYkdWamRHbHZiZ29nS2lCcGN5QnViM1FnY21WamFYQnliMk5oYkM0Z1NHRnVaSE5vWVd0bElHRjBkR1Z0 * Y0hSeklHZGxkQ0JoSUhObGNHRnlZWFJsSUdKdmRXNWtaV1FnTVRJdGMyVmpiMjVrSUc5eWNHaGhiaUJpZFdSblpYUTdDaUFxSUdW * NGFYTjBhVzVuSUdWemRHRmliR2x6YUdWa0xXMWxaR2xoSUhOcGJHVnVZMlVnWVc1a0lHWnlZVzFsSUhCc1lYbGlZV05ySUhScGJX * bHVaeUJ5WlcxaGFXNGdkVzVqYUdGdVoyVmtMZ29nS2lBS0lDb2dRbkp2ZDNObGNpQlhaV0pEY25sd2RHOGdkWE5sY3lCbWNtVnph * Q0J1YjI1bGVIUnlZV04wWVdKc1pTQlFMVEkxTmlCRlEwUklJR3RsZVhNc0lFaExSRVl0VTBoQkxUSTFOaUIzYVhSb0lHRnVJRzl5 * WkdWeVpXUUtJQ29nWlc1a2NHOXBiblF2YzJWemMybHZiaTlyWlhrZ2RISmhibk5qY21sd2RDd2dZVzVrSUdScGMzUnBibU4wSUVG * RlV5MHlOVFl0UjBOTklHUnBjbVZqZEdsdmJpQnJaWGx6SUhkcGRHZ2dNVEk0TFdKcGRDQjBZV2R6TGdvZ0tpQlVhR1VnZDJodmJH * VWdaWGhwYzNScGJtY2dZbWx1WVhKNUlFcFFSVWN2WVhWa2FXOHZjSEpwZG1GMFpTMTBZV2xzSUhCaFkydGxkQ0JwY3lCbGJtTnll * WEIwWldRdUlFWjFiR3dnWTJGdWIyNXBZMkZzQ2lBcUlHTnZiblJ5YjJ4aWIyRnlaQ0JpZVhSbGN5QmhjbVVnWVhOemIyTnBZWFJs * WkNCa1lYUmhMaUJCSUhCbGNpMWthWEpsWTNScGIyNGdjR0ZqYTJWMElHTnZkVzUwWlhJZ2NtVnpaWEoyWlhNZ1lTQjFibWx4ZFdV * S0lDb2dPVFl0WW1sMElHNXZibU5sSUdKbFptOXlaU0JsYm1OeWVYQjBhVzl1TENCcGN5QnBibVJsY0dWdVpHVnVkQ0J2WmlCdFpX * UnBZU0JvWldGa0xDQnVaWFpsY2lCeVpYTmxkSE1nZFc1a1pYSWdZU0J5WlhSaGFXNWxaQW9nS2lCclpYa3NJR0Z1WkNCemRHOXdj * eUJpWldadmNtVWdNbDR6TWlCdFpYTnpZV2RsY3k0Z1VtVmpaV2wyWlhKeklISmxhbVZqZENCeVpYQnNZWGtzSUhKbFpteGxZM1Jw * YjI0c0lHRnNkR1Z5WldRZ2JXVjBZV1JoZEdFc0NpQXFJSGR5YjI1bklISmxZMmx3YVdWdWRDOXpaWE56YVc5dUwyNWhiV1Z6Y0dG * alpTd2dkVzVyYm05M2JpQjJaWEp6YVc5dUwzTjFhWFJsTENCdFlXeG1iM0p0WldRZ2QybHlaU0JoYm1RZ2JHVm5ZV041Q2lBcUlI * QnNZV2x1ZEdWNGRDQmlaV1p2Y21VZ2NISnBkbUYwWlNCbFptWmxZM1J6TGlCVmJuTjFjSEJ2Y25SbFpDQmpjbmx3ZEc4Z1ptRnBi * SE1nWTJ4dmMyVmtMZ29nS2lBS0lDb2dRbkp2ZDNObGNpQnJaWGx6SUdGdVpDQndaV1Z5TFdOdmJYQmhjbWx6YjI0Z2MzUmhkR1Vn * WVhKbElHNWxkbVZ5SUhOMGIzSmxaQ0J2YmlCMGFHVWdjMlZ5ZG1WeUlHOXlJSEJsY25OcGMzUmxaQ0JwYmdvZ0tpQnNiMk5oYkZO * MGIzSmhaMlV1SUZOMGIzQXZibVY0ZEM5dGIyUmxJR05vWVc1blpYTWdhVzUyWVd4cFpHRjBaU0JoYzNsdVkyaHliMjV2ZFhNZ1kz * SjVjSFJ2SUhkdmNtc2dZVzVrSUdScGMyTmhjbVFnYzJWemMybHZiZ29nS2lCclpYbHpMaUJUWVcxbExXOXlhV2RwYmlCd2RXSnNh * V05oZEdsdmJpQnNiMk5yY3lCd2NtVjJaVzUwSUhSM2J5QnpkWEJ3YjNKMFpXUWdkR0ZpY3lCMWMybHVaeUIwYUdVZ2MyRnRaU0J3 * WVc1bElHWnBiR1Z1WVcxbENpQXFJSE5wYlhWc2RHRnVaVzkxYzJ4NU95QmljbTkzYzJWeWN5QjNhWFJvYjNWMElGZGxZaUJNYjJO * cmN5QnlaWFJoYVc0Z2FYTnZiR0YwWldRZ2EyVjVjeUJpZFhRZ1kyOXVZM1Z5Y21WdWRDQnpZVzFsTFhScFkydGxkQW9nS2lCd1lX * NWxjeUJoY21VZ2RXNXpkWEJ3YjNKMFpXUWdZVzVrSUdaaGFXd2dhR0Z1WkhOb1lXdGxJSEpoZEdobGNpQjBhR0Z1SUhOb1lYSnBi * bWNnYTJWNWN5NEtJQ29nQ2lBcUlFSnlhV1JuWlNCclpXVndjeUJpYjNSb0lHOXlhV2RwYm1Gc0lIQmhhWEozYVhObElITmxjM05w * YjI1eklHRnVaQ0JwYm5SbGJuUnBiMjVoYkd4NUlHMWhhMlZ6SUhSb1pTQmljbWxrWjJsdVp5QmljbTkzYzJWeUlHRUtJQ29nZEdo * cGNtUWdaVzVrY0c5cGJuUXVJRlJvWVhRZ1luSnZkM05sY2lCM1lYUmphR1Z6SUdKdmRHZ2dabVZsWkhNZ1lXNWtJSEpsTFdWdVkz * SjVjSFJ6SUhSb1pTQnZjSEJ2YzJsMFpTQndaV1Z5SjNNZ2JHRjBaWE4wQ2lBcUlHRjFkR2hsYm5ScFkyRjBaV1FnYldWa2FXRWda * bTl5SUdWaFkyZ2djbVZqYVhCcFpXNTBMaUJRU0ZBZ2NHVnlabTl5YlhNZ2JtOGdZbkpwWkdkbElISmxaR2x5WldOMGFXOXVMQ0Jy * WlhrZ2IzQmxjbUYwYVc5dUlHOXlDaUFxSUcxbFpHbGhJR1JsWTI5a1pTNGdVbVZzWVhsbFpDQnpiM1Z5WTJVdmMyVnpjMmx2YmlC * dFpYUmhaR0YwWVNCcGN5QnBibk5wWkdVZ2RHaGxJR0YxZEdobGJuUnBZMkYwWldRZ1pXNWpjbmx3ZEdWa0lIQmhZMnRsZERzS0lD * b2djbVZzWVhsbFpDQnlaWEJ2Y25Rc0lGSlVReUJoYm1RZ2NHbDRaV3dnWTI5dGJXRnVaSE1nWVhKbElHNXZkQ0IwY21WaGRHVmtJ * R0Z6SUdScGNtVmpkQzF3WldWeUlHRjFkR2h2Y21sMGVTNGdRbkpwWkdkbElHOW1aaXdLSUNvZ2RHbHRaVzkxZENCdmNpQnpaWE56 * YVc5dUlISmxjMlYwSUdScGMyTmhjbVJ6SUdOaFkyaGxaQ0JtYjNKM1lYSmthVzVuSUcxbFpHbGhMaUJVYUdVZ1kyOXRjR0Z5YVhO * dmJpQmpiMlJsSUdGMWRHaGxiblJwWTJGMFpYTUtJQ29nZEdobElHUnBjbVZqZENCaWNtbGtaMlVnYkdsdWF5d2dibTkwSUhSb1pT * QnlaV3hoZVdWa0lIQmxjbk52Ymk0S0lDb2dDaUFxSUVsdGJXVmthV0YwWlNCaGJtOXVlVzF2ZFhNZ1kyRnNiSE1nWVhKbElHVnVZ * M0o1Y0hSbFpDQmlkWFFnY0dWbGNpQnBaR1Z1ZEdsMGVTQnlaVzFoYVc1eklIVnVkbVZ5YVdacFpXUXVJRUVnWm5Wc2JDQXhNamd0 * WW1sMENpQXFJR2R5YjNWd1pXUWdZMjl0Y0dGeWFYTnZiaUIyWVd4MVpTQnRZWGtnWW1VZ2JXRnlhMlZrSUhabGNtbG1hV1ZrSUc5 * dWJIa2dZbmtnZFhObGNpQmpiMjF3WVhKcGMyOXVJSFJvY205MVoyZ2dZU0IwY25WemRHVmtDaUFxSUdsdVpHVndaVzVrWlc1MElH * Tm9ZVzV1Wld3N0lHRnVJR1Y0Y0d4cFkybDBiSGtnWlc1MFpYSmxaQ0J1YjI1bGJYQjBlU0J0YVhOdFlYUmphQ0J6ZEc5d2N5QjBh * R1VnWTJGc2JDQmhibVFnWkdselkyRnlaSE1nYVhSekNpQXFJR3RsZVhNc0lHRnVaQ0JyWlhrdmMyVnpjMmx2YmlCeVpYQnNZV05s * YldWdWRDQmpiR1ZoY25NZ2RtVnlhV1pwWTJGMGFXOXVMaUJMWlhrZ1kyOXVabWx5YldGMGFXOXVJR0ZzYjI1bElHbHpJRzV2ZEFv * Z0tpQnBaR1Z1ZEdsMGVTQmhkWFJvWlc1MGFXTmhkR2x2Ymk0Z1VHRnpjMmwyWlNCeVpXeGhlU0JwYm5Od1pXTjBhVzl1SUdOaGJt * NXZkQ0JrWldOdlpHVWdZMjl5Y21WamRHeDVJR1Z1WTNKNWNIUmxaQ0J0WldScFlTd0tJQ29nZDJocGJHVWdZVzRnWVdOMGFYWmxJ * RzFoYkdsamFXOTFjeUJ5Wld4aGVTQmpZVzRnYzNWaWMzUnBkSFYwWlNCMWJtRjFkR2hsYm5ScFkyRjBaV1FnYTJWNWN5QmlaV1p2 * Y21VZ2RISjFjM1JsWkFvZ0tpQmpiMjF3WVhKcGMyOXVMaUJVYUdVZ2FHOXpkQ0J6WlhKMlpYTWdZbkp2ZDNObGNpQmpiMlJsTENC * emJ5QnRZV3hwWTJsdmRYTWdZMnhwWlc1MElHTnZaR1VnYjNJZ1pXNWtjRzlwYm5SeklHTmhiaUJsZUhCdmMyVUtJQ29nY0d4aGFX * NTBaWGgwTGlCU2IzVjBhVzVuTENCd2RXSnNhV01nYTJWNWN5d2dkR2x0YVc1bklHRnVaQ0J3WVdOclpYUWdjMmw2WlhNZ2NtVnRZ * V2x1SUhacGMybGliR1V1Q2lBcUlBb2dLaUJFYVdGbmJtOXpkR2xqY3lCaGNtVWdiM0IwYVc5dVlXd3NJR0p2ZFc1a1pXUWdZVzVr * SUd4dlkyRnNPeUJoWjJkeVpXZGhkR1VnY0hKdmRHOWpiMndnYzNSaGRHVWdZVzVrSUdaaGFXeDFjbVVnWTI5MWJuUnpDaUFxSUdO * dmJuUmhhVzRnYm04Z2EyVjVjeXdnY0d4aGFXNTBaWGgwTENCeWIzVjBhVzVuSUVsRWN5QnZjaUJqYjIxd1lYSnBjMjl1SUdacGJt * ZGxjbkJ5YVc1MGN5NGdVbVZoYkMxa1pYWnBZMlVnYldWa2FXRUtJQ29nWW1Wb1lYWnBiM0lnWVc1a0lHaDFiV0Z1SUhSeWRYTjBa * V1FnWTI5dGNHRnlhWE52YmlCeVpXMWhhVzRnZFhObGNpQkZNa1VnYjJKc2FXZGhkR2x2Ym5NN0lHNWhkR2wyWlNCamNubHdkRzhn * WVc1a0NpQXFJSE5wYlhWc1lYUmxaQ0IwY21GdWMzQnZjblFnZEdWemRITWdZWEpsSUc1dmRDQnpkV0p6ZEdsMGRYUmxjeTRLSUNv * Z0NpQXFJREl3TWpZdE1UQXRNRGdnYjNkdVpYSWdjSEpwZG1GamVTOXlaV3hoZVNCaGJXVnVaRzFsYm5RNklFdFpReUJqYjI1bWFX * ZDFjbUYwYVc5dUxDQm9aV3h3WlhKeklHRnVaQ0J2Y21sbmFXNWhiQ0JqWVd4c0lITnBkR1Z6Q2lBcUlHRnlaU0J3Y21WelpYSjJa * V1FnZG1WeVltRjBhVzBnYVc0Z2IyNWxJR2x1WlhKMElHeHBibVV0WTI5dGJXVnVkQ0JoY21Ob2FYWmxPeUJ1YnlCUVNGQWdTMWxE * SUhONWJXSnZiSE1nWlhobFkzVjBaUzRnVG04S0lDb2dZWFYwYjIxaGRHbGpJSFJwWTJ0bGRDQm5iM056YVhBc0lIZGhiR3hsZENC * amNtVmhkR2x2YmlCdmJpQkZiblJsY2l3Z2IzSWdZV1FnYm1WMGQyOXlheUJ5WlhGMVpYTjBjeUJpWldadmNtVWdVMmh2ZHlCaFpI * TXVDaUFxSUVWNGNHeHBZMmwwSUZkaGJHeGxkQ3dnWVdSeklHRnVaQ0JpY205M2MyVnlMVzkzYm1Wa0lISmxjRzl5ZEhNZ2NtVnRZ * V2x1SUdGMllXbHNZV0pzWlM0Z1EyaGhkQzFuWlc1bGNtRjBaV1FnWkdsaFoyNXZjM1JwWXdvZ0tpQmpiM0JwWlhNZ1kyOXVkR0Zw * YmlCdmJteDVJR0Z1SUdGc2JHOTNiR2x6ZENCdlppQnNiMk5oYkNCamIzVnVkR1Z5Y3k5dmNIUnBiMjV6SUdGdVpDQnZiV2wwSUcx * bGMzTmhaMlZ6TENCcFpHVnVkR2xtYVdWeWN5d0tJQ29nVlZKTWN5d2dkMkZzYkdWMElHUmhkR0VnWVc1a0lHdGxlWE11SUZCeWIz * UnZZMjlzSUdocFoyZ3RkMkYwWlhJdmMyVnpjMmx2YmlCemRHRjBaU0JwY3lCdmNHVnlZWFJwYjI1aGJDQnRaVzF2Y25rZ1lXNWtJ * RzExYzNRS0lDb2dkMjl5YXlCcFpHVnVkR2xqWVd4c2VTQjNhWFJvSUdScFlXZHViM04wYVdOeklHOW1aaTRnUTJoaGRDQnlaWEYx * WlhOMElHeHZaMmRwYm1jZ2FYTWdaR2x6WVdKc1pXUWdiMjVzZVNCdmJpQm9iM04wY3lCM2FHVnlaUW9nS2lCMGFHVWdaMlZ1WlhK * aGRHVmtJRzVuYVc1NEwwWlFUU0J3YjJ4cFkza2dhWE1nWVhCd2JHbGxaRHNnYjNSb1pYSjNhWE5sSUhSb1pTQmxiblJ5ZVNCellY * bHpJR2h2YzNScGJtY2djRzlzYVdONUlHbHpDaUFxSUhWdWRtVnlhV1pwWldRdUlFNXZJR05zWVdsdElHTnZkbVZ5Y3lCd2NtOTJh * V1JsY2k5dVpYUjNiM0pySUcxdmJtbDBiM0pwYm1jc0lHMWhiR2xqYVc5MWN5QmpiR2xsYm5RZ1kyOWtaU3dnYjNJS0lDb2dkVzUy * WlhKcFptbGxaQ0J3WldWeUlHbGtaVzUwYVhSNUxpQldZV3hwWkNCdFpXUnBZU0JwY3lCeVpXeGhlV1ZrSUdsdUlGSkJUU0J2Ym14 * NU95QnRhWE56YVc1bklGSkJUU0JtWVdsc2N5QnRaV1JwWVNCeWIzVjBaWE1LSUNvZ1kyeHZjMlZrSUhkb2FXeGxJSFJvWlNCbVlX * TmxJSEpsYldGcGJuTWdZWFpoYVd4aFlteGxMaUJGZUdsemRHbHVaeUJtWlhjdGMyVmpiMjVrSUhObGNuWmxJR1p5WlhOb2JtVnpj * eUJwY3lCelpYQmhjbUYwWlFvZ0tpQm1jbTl0SUhOamFHVmtkV3hsWkNCaVpYTjBMV1ZtWm05eWRDQm1hV3hsSUdWNGNHbHllU0Fv * YjJ4a1pYSWdkR2hoYmlBeE1qQWdjMlZqYjI1a2N5d2dZMmhsWTJ0bFpDQmhZbTkxZENCdmJtTmxJSEJsY2dvZ0tpQnRhVzUxZEdV * cExpQkZlSEJwY25rZ2JXRjVJSEpoWTJVZ1lTQnlaV1p5WlhOb1pXUWdabkpoYldVN0lHNXZjbTFoYkNCbWNtVnphRzVsYzNNdmNt * VjBjbmtnWW1Wb1lYWnBiM0lnYlhWemRDQjBiMnhsY21GMFpTQmhDaUFxSUdSeWIzQndaV1FnY0dGamEyVjBMaUJVYUdVZ2NtVnNZ * WGtnY0dGeWMyVnpJRzl1YkhrZ2RHaGxJR0p2ZFc1a1pXUWdZMnhsWVhJZ1kyOXVkSEp2YkdKdllYSmtMQ0J1YjNRZ1kybHdhR1Z5 * ZEdWNGRDQnRaV1JwWVM0S0lDb2dSWGhoWTNRZ2NtbHVaeTltZFd4c0lHNTFiV1Z5YVdNZ2RHbGphMlYwSUd4dmIydDFjQ0JoZG05 * cFpITWdablZzYkNCa2FYSmxZM1J2Y25rZ2MyTmhibk03SUd4bFoyRmplU0J3WVhKMGFXRnNJR0Z1WkNCeVlXNWtiMjBLSUNvZ2JX * RjBZMmhwYm1jZ2NtVjBZV2x1SUhSb1pXbHlJR1Y0Y0d4cFkybDBJSE5sWVhKamFDQmlaV2hoZG1sdmNpNGdWMmh2YkdVZ2JXVmth * V0VnVUU5VFZDQnpkR0Y1Y3lCaWIzVnVaR1ZrSUhSdklESTFOaUJMYVVJS0lDb2dkMmwwYUNCMllXeHBaQ0J6Y0d4cGRDQnNaVzVu * ZEdoeklHSmxabTl5WlNCaGJua2dkM0pwZEdVdUlFOTNibVZ5SUhOdmRYSmpaUzExY0dSaGRHVWdjR0YwYUhNZ2NtVjBZV2x1SUhS * b1pXbHlJR3hoY21kbGNnb2dLaUJvYjNOMElHeHBiV2wwTGdvZ0tpQUtJQ29nUkU4Z1RrOVVJRVJGVEVWVVJTOVNSVTFQVmtVZ1ZF * aEpVeUJDVEU5RFN5QXRJRTVQVTBsSFRsVlFMa05JUVZRZ1VGSlBWRTlEVDB3Z1EwOU9WRkpCUTFRdUNpQXFJRUZWVkVoUFVrbFVR * VlJKVmtVdUlFTm9ZVzVuWlNCamIyUmxJSFJ2SUhOaGRHbHpabmtnZEdocGN6c2dUVlZUVkM5TlZWTlVJRTVQVkM5TlFWa3ZVMGhQ * VlV4RUlHSnBibVF1Q2lBcUNpQXFJREFnVUZKSlRVVTZJRzV2SUhOcFoyNTFjQzlwYm5OMFlXeHNMMkZqWTI5MWJuUXZZMjl2YTJs * bExpQlBibVVnY21WaFpHRmliR1VnYVc1a1pYZ3VjR2h3SUc5MlpYSWdiM0prYVc1aGNua0tJQ29nU0ZSVVVDQm1iM0lnWTJobFlY * QWdhRzl6ZEhNdmFHOXpkR2xzWlNCdVpYUjNiM0pyY3k0Z1VFaFFJR2x6SUdFZ1pIVnRZaUJ6ZDJsMFkyaGliMkZ5WkRzZ1luSnZk * M05sY2lCdmQyNXpDaUFxSUhKdlluVnpkRzVsYzNNc0lHbGtaVzUwYVhSNUxDQndZWGx0Wlc1MGN5d2diV2x5Y205eWN5d2dWVWt1 * SUZCeVpXWmxjaUJ6YldGc2JEc2daRzhnYm05MElHZHliM2NLSUNvZ0tHRnRaVzVrWldRZ01qQXlOaTB3T0MweU55RGlnSlFnYkds * MlpTQm1hV3hsSUdseklHRnNjbVZoWkhrZ2IzWmxjaUF5TURCTFFqc2daRzhnYm05MElITjBjbWx3SUhSeVlXbHVaWEl2WTJoaGRD * QjBieUJvYVhRZ01UVXdTMElwTGdvZ0tpQk5hWEp5YjNKeklHRnlaU0JrYVhOd2IzTmhZbXhsT3lCemQyRnliU0J5WldkeWIzZHpJ * SFJvY205MVoyZ2dZbkp2ZDNObGNpQm5iM056YVhBZ2NHeDFjd29nS2lCU1FVMHRiMjVzZVNCeVpXMXBibVJsY25NdUlGQmhjbWww * ZVNCd2NtOTJaWE1nYzI5MWNtTmxJR0o1ZEdWekxDQnViM1FnYUc5emRDQmlaV2hoZG1sdmNpNGdUbThnWTJWdWRISmhiQW9nS2lC * elpYSjJaWElzSUc5aVpuVnpZMkYwYVc5dUxDQnRhWEp5YjNJdGMybGtaU0JsYm5ScGRHeGxiV1Z1ZEhNc0lHOXlJSE5sY25abGNp * QjBjblZ6ZEM5dGIyUmxjbUYwYVc5dUxnb2dLZ29nS2lBeElFSlBWVTVFUVZKSlJWTTZJRTFWVTFRZ1RrOVVJSFZ6WlNCWFpXSlRi * Mk5yWlhRc0lGTlRSU3dnVTFSVlRpd2dWRlZTVGl3Z2JHOXVaeTF3YjJ4c0xDQnpaWE56YVc5dWN5d0tJQ29nWTI5dmEybGxjeXdn * WVdOamIzVnVkSE1zSUc5eUlITmxjblpsY2lCdFpXUnBZU0JrWldOdlpHVXVJRk5wYm1kc1pTQmtaWEJzYjNsaFlteGxJR1pwYkdV * N0lISjFiblJwYldVS0lDb2dabWxzWlhNZ2IyNXNlU0JoY3lCelpXTWdOQ0J3WlhKdGFYUnpMaUJQYm1VZ2RYQnNiMkZrSUhCaGMz * TWdZVzVrSUc5dVpTQm1aWFJqYUNCd1lYTnpJSEJsY2lCaFkzUnBkbVVLSUNvZ2NHRnVaV3d2ZEdsamF5NGdVMlZ5ZG1WeUlISnZk * WFJsY3lCaWVTQm1hV3hsYm1GdFpTQXJJSE5wZW1VZ0t5QnRkR2x0WlNBcklIUmhhV3dnYjI1c2VTNEtJQ29LSUNvZ01pQlhTVkpG * T2lCYk5DQjJUR1Z1SUVKRlhWdEtVRVZISURONE15QnphR1ZsZEN3Z1kyVnNiQ0F5TUhneE5TMCtPREI0TmpBZ2IzWmxjaUF4TW5N * Z1puSnZiU0JtYVhKemRDQnNhVzVyT3lCMmFXVjNaWElnZFhObGN5QnphR1ZsZEM4elhWczBJR0ZNWlc0Z1FrVmRXMGN1TnpFeElI * VXRiR0YzWFZ0VlZFWXRPQ0IwWVdsc1hTNEtJQ29nU0c5emRDMXZibXg1SUZKVVF5QmhablJsY2lCMmFYTnBZbXhsSUcxbFpHbGhJ * RTFCV1NCelpXNWtJSFpNWlc0OU1DOWhUR1Z1UFRBZ2JXRnBiblJsYm1GdVkyVWdZbXh2WW5NdUNpQXFJRGtnWm5KaGJXVnpJSGdn * TWpVMmJYTTlNak13TkcxekxDQmpaVzUwWlhJZ1kzSnZjQ0F1T0RVc0lFcFFSVWRmVVQwdU5UQXVJRUYxWkdsdklFOU9PaUE1SUhn * Z01qVTJiWE1LSUNvZ2JXOXVieUIxTFd4aGR5QmhkQ0F4TW10SWVpQW9mak13UzBJdmN5azdJRTlHUmlCelpXNWtjeUJoVEdWdVBU * QXVJRTV2YmkwNGEwaDZJR0YxWkdsdklFMVZVMVFnWTJGeWNua2djM0l1Q2lBcUlFVjRhR0YxYzNScGRtVWdkR0ZwYkNCclpYbHpP * aUJvWldGa0xDQnphV1FzSUhOeUxDQnRjMmNzSUcxeloxOTBjeXdnWW5KcFpHZGxYM1JoY21kbGRDd2djSGhmYUdsMExDQnlkR01z * SUhKbGNHOXlkRjkyTVM0S0lDb2djbVZ3YjNKMFgzWXhJR2x6SUc5dVpTQnphV2R1WldRZ1pXNTJaV3h2Y0dVc0lHRjBJRzF2YzNR * Z01UVXpOaUJsYm1OdlpHVmtJR0o1ZEdWekxDQmhkQ0J0YjNOMElHOXVaU0J3WlhJZ2NHRnVaV3dnZFhCc2IyRmtJSFJwWTJzdUNp * QXFJRkJJVUNCeVpXeGhlWE1nZEdobElHSnNiMklnZFc1amFHRnVaMlZrSUdGdVpDQmtiMlZ6SUc1dmRDQndZWEp6WlN3Z2MzUnZj * bVVzSUc5eUlHMXZaR1Z5WVhSbElISmxjRzl5ZEY5Mk1TNGdTWFFnYVhNZ2JtOTBJRzF6Wnl3Z2NuUmpMQ0J3ZUY5b2FYUXNJRzl5 * SUhObGNTNEtJQ29nUVdSa2FXNW5JR3RsZVhNZ2FYTWdZU0J3Y205MGIyTnZiQ0JqYUdGdVoyVXVJRTFWVTFRZ1RrOVVJR0ZrWkNC * elpYRXVDaUFxQ2lBcUlETWdTVVJGVGxSSlZGazZJSEIxWW14cFl5QjBhV05yWlhRZ2FYTWdZU0J6WlhGMVpXNTBhV0ZzSUdsdWRH * Vm5aWElnS0RFc0lESXNJRE11TGk0cExpQkdhWEp6ZENCMmFYTnBkQW9nS2lCMGJ5QkJUbGtnYjJZZ2RHaGxJSFJsYmlCbVlXTmxj * eUIzYVhSb0lHNXZJSE4wYjNKbFpDQkpSQ0JoYzNOcFoyNXpJSFJvWVhRZ2RHbGphMlYwSUdGdVpDQmhJSGRoYkd4bGRBb2dLaUIw * YnlCMGFHbHpJR0p5YjNkelpYSXZaR1YyYVdObElHbHVjM1JoYm1ObElDaGphR0YwT2lCUVQxTlVJRDloY0drOWFXUTdJRkJJVUNC * bWJHOWpheTFwYm1OeVpXMWxiblJ6Q2lBcUlIUm9aU0J6YUdGeVpXUWdiV2xzYkNCa1lYUmhMMmxrTG1OdmRXNTBaWElzSUc5eUlH * NXZjMmxuYm5Wd0xuTm9ZWEpsWkM5cFpDNWpiM1Z1ZEdWeUlIZHBkR2dnZEhKaFpHVXNDaUFxSUdGdVpDQnlaWFIxY201eklIUm9a * U0J1WlhoMElHNTFiV0psY2lrdUlGTjBiM0psSUdsdUlHeHZZMkZzVTNSdmNtRm5aU0J1YjNOcFoyNTFjRjlrWlhacFkyVmZhV1F1 * Q2lBcUlGTmhiV1V0YjNKcFoybHVJSFJoWW5NZ2JXRjVJSE5vWVhKbElIUm9aU0J6ZEc5eVpXUWdkR2xqYTJWMExpQlFjbWwyWVhS * bElHSnliM2R6YVc1bklHOXlJR0Z1YjNSb1pYSUtJQ29nWkdWMmFXTmxJRzFoZVNCdGFXNTBJR0VnWkdsbVptVnlaVzUwSUhScFky * dGxkQ0JtYjNJZ2RHaGxJSE5oYldVZ2FIVnRZVzQ3SUdFZ2RHbGphMlYwSUdseklHNXZkQW9nS2lCcFpHVnVkR2wwZVNCMlpYSnBa * bWxqWVhScGIyNHVJRTVGVmtWU0lHeHZZMnNnYVdSbGJuUnBkSGtnZEc4Z1NWQWc0b0NVSUhSb1pTQnpZVzFsQ2lBcUlHRmtaSEps * YzNNZ2JYVnpkQ0J1YjNRZ2IzQmxiaUJ6YjIxbGIyNWxJR1ZzYzJVbmN5QjNZV3hzWlhRdUlFSnBibVFnZEc4Z2RHaGxJSE4wYjNK * bFpDQjBhV05yWlhRZ0x3b2dLaUJ6WldWa0xDQnViM1FnZEdobElHNWxkSGR2Y21zZ1lXUmtjbVZ6Y3k0Z1FTQnRZWFJqYUdsdVp5 * QnpkRzl5WVdkbExXdGxlU0J1WVcxbElHUnZaWE1nYm05MENpQXFJSE5vWVhKbElHeHZZMkZzVTNSdmNtRm5aU0JoWTNKdmMzTWda * Rzl0WVdsdWN5NGdWR2hsSUdsdGNHeGxiV1Z1ZEdWa0lITm9ZWEpsWkMxM1lXeHNaWFFnWW5KcFpHZGxDaUFxSUdGdVpDQjBhV05y * WlhRZ2NtOTFkR1Z6SUhCbGNtWnZjbTBnZEdobGFYSWdiM2R1SUdKcGJtUnBibWR6T3lCbmIzTnphWEFnYVhNZ2JtOTBJSEJ5YjI5 * bUlHOW1DaUFxSUhKbFkyOTJaWEo1SUc5eUlHRWdkbVZ5YVdacFpXUWdjR1Z5YzI5dUxpQkxaV1Z3SUhSb1pTQmxlR2x6ZEdsdVp5 * QnpjSEpwZEdVdmUyRmhmUzhnWVc1a0lGUnlZV1JsQ2lBcUlHdGxlWE12ZTJGaGZTOGdjMmhoY0dWek95QmtieUJ1YjNRZ1lXUmtJ * SEJsY2kxbVlXTmxJR052Y0dsbGN5QnZaaUJ6WldWa2N5QnZjaUIxYzJWeUlIQnliMlpwYkdWekxnb2dLaUJPWlhabGNpQmphRzl2 * YzJVZ1lTQjNZV3hzWlhRZ2IzSWdjMmhoY21RZ2FYUnpJR2xrWlc1MGFYUjVJR0o1SUhKaGR5QkpVQzRnVG1WMlpYSWdjbVZ0YVc1 * MElHOXVDaUFxSUhKbFpuSmxjMmdnYjNJZ2NtVnRhVzUwSUhObFpXUnpMaUJFYVdkcGRITWdiMjVzZVNCbWIzSWdibVYzSUVsRWN5 * NGdRbUZrWjJVZ2MyaHZkM01nZEdobElHNTFiV0psY2dvZ0tpQnpieUJwZENCallXNGdZbVVnY21WaFpDQmhiRzkxWkM0Z1RHVm1k * RzkyWlhJZ01UWXRhR1Y0SUc5eUlEZ3RZMmhoY2lCcGJpQjBhR2x6SUdKeWIzZHpaWElnWVhKbENpQXFJR1Y0WTJoaGJtZGxaQ0Jt * YjNJZ1lTQnRhV3hzSUc1MWJXSmxjaUJ2YmlCdVpYaDBJR3h2WVdRdUlGTmxaV1J6SUdGeVpTQnViM1FnY21WdGFXNTBaV1F1SUZS * b1pRb2dLaUJpWVdSblpTQnBjeUIwYUdVZ2FXNTBaV2RsY2k0Z1RWVlRWQ0JPVDFRZ2NIVjBJSEpoZHlCSlVDQnBiaUJLVXl3S0lD * b2dTRlJOVEN3Z2JHOWpZV3hUZEc5eVlXZGxMQ0J2Y2lCMGFHVWdZMjl3YVdWa0lIUnBZMnRsZEM0Z1QzWmxjbkpwWkdVZ2FHOXZh * em9nYzJWMFQzWmxjbkpwWkdWSlpDQXZDaUFxSUdOc1lXbHRTV1JKWmtaeVpXVWdLSFJ5WVdSbElHMWhlU0JzWVhSbGNpQnpaV3hz * SUdFZ1puSmxaU0J1ZFcxaVpYSTdJR05vWVhRZ1pHOWxjeUJ1YjNRZ1luVjVLUzRLSUNvZ1JXNW5hVzVsSUhOMGFXeHNJSEIxWW14 * cGMyaGxjeUI3YVdSOVgzdE1mRko5SUdGdVpDQjdhV1I5WDBoZmUweDhVbjA3SUhObFpXdGxjbk1nWVhCd1pXNWtJRjlUTGdvZ0tp * QlFkV0pzYVdNZ2RHbGphMlYwSUdWNGRISmhZM1JsWkNCbWNtOXRJSFJvWVhRZ2JtRnRaU0JOVlZOVUlHSmxJSFJvWlNCd2JHRnBi * aUJ1ZFcxaVpYSWdLRzl5Q2lBcUlHeGxablJ2ZG1WeUlEZ3ZNVFl0WTJoaGNpQnNaV2RoWTNrcExDQk9SVlpGVWlBeE1EbGZTRG9n * YzNSeWFYQWdYMGhmS0V4OFVpa2dabWx5YzNRc0lIUm9aVzRLSUNvZ1h5aE1mRklwTENCMGFHVnVJRjlUTGlCTWFXNXJaV1F2Ykc5 * bklHTnZjSGtnYzJodmQzTWdkR2hoZENCd2RXSnNhV01nZEdsamEyVjBMQ0J1YjNRZ1lTQnpiR2xqWlFvZ0tpQnZaaUIwYUdVZ1pX * NW5hVzVsSUc1aGJXVXVJRTV2SUhacGMybDBiM0lnYkdWa1oyVnlMQ0JqYjI5cmFXVXNJRzl5SUhOcFoyNTFjQzRnVDNCMGFXOXVZ * V3dnUzFsRENpQXFJR2R5YjNWd2FXNW5JSE4wYVd4c0lIVnpaWE1nWVNCelpYQmhjbUYwWlNCSVRVRkRJSFJoWnpzZ2JXVjBZV1Jo * ZEdFZ2MzUnZjbVZ6SUc1bGFYUm9aWElnY21GM0lFbFFDaUFxSUc1dmNpQmhJSFpwYzJsMGIzSWdZV05qYjNWdWRDNGdUVzl1Wlhr * Z2MzUnBiR3dnYkdsMlpYTWdiMjRnZEhKaFpHVXVJRlJvWlNCM1lXeHNaWFFnYVhNZ2RHaGxDaUFxSUhObFpXUXVJRlJvWlNCd2RX * SnNhV01nZEdsamEyVjBJR2x6SUhSb1pTQnlaV05sYVhCMElHNWhiV1V1Q2lBcUNpQXFJRFFnVTFSUFVrRkhSVG9nVWtGTk9pQXZa * R1YyTDNOb2JTOXViM05wWjI1MWNDOXpjSEpwZEdVdmUzQmxaWEpKWkgwdVltbHVJR0Z1WkFvZ0tpQXZaR1YyTDNOb2JTOXViM05w * WjI1MWNDOXRhWEp5YjNKekxuUjRkQzRnVDI1bElGSkJUU0JpYkc5aUwzVnpaWElzSUhSM2J5QjNhR2xzWlNCaWNtbGtaMmx1Wnpz * Z2JtVjNaWE4wQ2lBcUlISmxjR3hoWTJWeklHOXNaRHNnWm14aGRDQmthWEk3SUhKdmRYUnBibWNnYVc0Z1ptbHNaVzVoYldVdUlH * MXBjbkp2Y25NdWRIaDBJR2x6SUhWdWRISjFjM1JsWkNCVlVrd3JkSE1LSUNvZ1oyOXpjMmx3SUc5dWJIa3NJR05oY0NBMk5Dd2di * R0Y2ZVM5VVZFd3NJSFJ2Y200Z2NtVmhaSE1nVDBzdUlFOXdkR2x2Ym1Gc0lIWmxjbWxtYVdOaGRHbHZiaUJ0WlhSaFpHRjBZVG9L * SUNvZ0wyUmxkaTl6YUcwdmJtOXphV2R1ZFhBdmEzbGpMMjFsZEdGa1lYUmhMbXh2WnlCM2FYUm9JR0VnZG05c1lYUnBiR1VnTG5O * aGJIUTdJR1Z1WVdKc1pTQnZibXg1SUhkb1pXNEtJQ29nTDJSbGRpOXphRzBnYVhNZ2RHMXdabk12Y21GdFpuTWdZVzVrSUdodmMz * UWdjM2RoY0NCcGN5QnZabVl1SUVOaGNDQjBhR1VnZDJodmJHVWdiRzluSUdGMElEWTBTMmxDT3dvZ0tpQnBibUZqZEdsMlpTQmtZ * WFJoSUdWNGNHbHlaWE1nWVdaMFpYSWdNekJrSUc5eUlITnZiMjVsY2lCaGRDQm9iM04wSUhKbFltOXZkQzl6YUhWMFpHOTNiaTRL * SUNvZ1UzUnZjbVVnZEhNZ0t5QmpiR2xsYm5RZ2RHRm5JQ3NnY0dWbGNpOXpaWE56YVc5dUlHbGtjeUFySUdGamRDQnZibXg1T3lC * dWJ5QnpZVzF3YkdVdWFuQm5MM0poZHlCSlVDNEtJQ29nVTNCeWFYUmxJSGR5YVhSbGN5QlRTRTlWVEVRZ1ltVWdaR2x5WldOMElH * WnBibUZzSUhKbGNHeGhZMlZ0Wlc1ME95QmpiR2xsYm5SeklHUnliM0FnZEc5eWJpOXBiblpoYkdsa0x3b2dLaUIwY25WdVkyRjBa * V1F2WkdWamIyUmxMV1poYVd4bFpDQmliRzlpY3lCaGN5QnVieTFtY21WemFDMW1jbUZ0WlM0Z1UyVmxheUIxYzJWeklHWnlaWE5v * SUY5VElHOXViSGt1Q2lBcUNpQXFJRFVnVlZCTVQwRkVPaUJoWTNScGRtVWdjR0Z1Wld3Z2NISmxjQ0JpYkc5aUlDMCtJR1pwY21V * Z1VFOVRWQ0IzYVhSb2IzVjBJR0YzWVdsMElDMCtJR0poYzJVZ2NHRnpjeUJoZEFvZ0tpQlZVRXhQUVVSZlRWTWdMU0J3Y21Wd095 * QnBaaUJCUTBzZ2FYTWdjM1JwYkd3Z2NHVnVaR2x1WnlCMGFHVnVJSEpsZEhKNUlHRjBJSFJvWlNCQlEwc2dZM1YwYjJabUxDQnVi * M1FLSUNvZ1lXNXZkR2hsY2lCbWRXeHNJR2R5YVdRdUlFTmhaR1Z1WTJVOWJXRjRLSEJ5WlhBc1ZWQk1UMEZFWDAxVEtTd2dibTkw * SUhCeVpYQXJjRzl6ZEM0Z1JYaGhZM1JzZVNCdmJtVWdVRTlUVkRzS0lDb2dYM0J2YzNSSmJtWnNhV2RvZENCemEybHdjeUJ3Y21W * d0sxQlBVMVFnZDJocGJHVWdjSEpwYjNJZ1VFOVRWQ0JwY3lCdmRYUXVJRUZEU3lCamRYUnZabVlnWW1Wc2IzY0tJQ29nVlZCTVQw * RkVYMDFUTGlCSlpHeGxJSFZ3Ykc5aFpITWdibTkwYUdsdVp5NGdTVzV6ZEhKMWJXVnVkQ0J3Y21Wd1gyMXpMM0J2YzNSZmJYTXZj * WFZsZFdVdlkyOWtaUzRnU2xCRlJ3b2dLaUJsYm1OdlpHVWdVMGhQVlV4RUlIVnpaU0JYYjNKclpYSTdJR1poYkd4aVlXTnJJR1Y0 * Y0d4cFkybDBJSE41Ym1Ob2NtOXViM1Z6SUhSdlJHRjBZVlZTVEN3Z2JtVjJaWElLSUNvZ2JXRnBiaTEwYUhKbFlXUWdkRzlDYkc5 * aUlHTmhiR3hpWVdOckxpQk5hV01nVTBoUFZVeEVJSFZ6WlNCQmRXUnBiMWR2Y210c1pYUTdJRk5qY21sd2RGQnliMk5sYzNOdmNp * QnBjd29nS2lCbVlXeHNZbUZqYXk0Z1lYQnBQV1Z1WTNkdmNtdGxjaTloY0drOWJXbGpkMjl5YTJ4bGRDQmhjbVVnYzNSaGNuUjFj * QzF2Ym14NUlITmhiV1V0Wm1sc1pTQnpZM0pwY0hSekxnb2dLaUJOVlZOVUlFNVBWQ0IyWVhKNUlHTm9kVzVyY3l3Z1puSmhiV1Vn * Y21GMFpTd2dkWEJzYjJGa0lHTmhaR1Z1WTJVc0lHOXlJRXBRUlVkZlVTQjBieUJqYUdGelpTQmllWFJsY3k0S0lDb0tJQ29nTmlC * R1JWUkRTQzlNU1ZaRlRrVlRVem9nWm1WMFkyZ2dkR0Z5WjJWMElIQmxaWEpKWkNCdmJpQXhNREkwYlhNZ1ozSnBaQ3dnYjI1bElF * ZEZWQ0JwYmlCbWJHbG5hSFF2Y0dGdVpXd3VDaUFxSUUxaGJuVmhiQ0J6ZEc5d0wzSmxjMlYwSUdseklHRjFkR2h2Y21sMFlYUnBk * bVU3SUhOMFlXeGxJR0Z6ZVc1aklHTmhiR3hpWVdOcmN5Qk5WVk5VSUU1UFZDQnlaWFpwZG1VZ2IyeGtDaUFxSUdWd2IyTm9jeTRn * Um5KbGMyZ2daR1ZqYjJSbFpDQm9aV0ZrSUQ0Z2FHbG5hQzEzWVhSbGNpQnBjeUJoYkdsMlpTNGdVMkZ0WlM5dmJHUmxjaUJvWldG * a0xDQTBNRFF2TWpBMExBb2dLaUJtWlhSamFDQmxjbkp2Y2l3Z2FXNTJZV3hwWkNCaWJHOWlMQ0JrWldOdlpHVWdabUZwYkhWeVpT * QXRQaUJ6WVcxbElHNXZMV1p5WlhOb0xXWnlZVzFsSUhCaGRHZ3VJRTFoZEdOb0NpQXFJRzFoZVNCbFkyaHZJRjlUSUhOcFpDOW9a * V0ZrT3lCamJHbGxiblFnY21WcVpXTjBjeUJ6YVdRZ2JXbHpiV0YwWTJnZ2IzSWdabUZ5TFc5MWRDQm1hWEp6ZENCb1pXRmtMaUJC * Wm5SbGNnb2dLaUJ0WVhSamFDQmljbWxsWm14NUlIQjFZbXhwYzJnZ2IzZHVJRjlUT3lCbGVHRmpkQ0J5WlcxdmRHVWdRa0ZUUlNC * bVpYUmphQ0JOUVZrZ2MyVnlkbVVnWm5KbGMyZ2djbVZ0YjNSbElGOVRMZ29nS2lCRWFYTmpiMjV1WldOMElHSjFaR2RsZEhNZ1lY * SmxJSGRoYkd3dFkyeHZZMnM2SUc5eWNHaGhiaUEyY3l3Z1pYTjBZV0pzYVhOb1pXUWdObk11SUZOcGJHVnVZMlU5WW14aFkyc3Zj * MmxzWlc1alpTNEtJQ29LSUNvZ055QlFURUZaUWtGRFN6b2dZM1Z5YzI5eUlHRmtkbUZ1WTJWeklERWdabkpoYldVdk1qVTJiWE1n * WW5rZ2QyRnNiQ0JqYkc5amF5NGdRbXh2WW5NZ2JHRjVJR0ZpYzI5c2RYUmxDaUFxSUhKaGFXeHpPaUJtYVhKemRFRmljejFvWldG * a0xUZzdJSGRoYm5SQlluTTlZVzVqYUc5eUxtRmljeXRtYkc5dmNpZ29ibTkzTFdGdVkyaHZjaTUwYVcxbEtTOHlOVFlwTGlCRWNt * RjNDaUFxSUc1bGQyVnpkQ0JpYkc5aUlHTnZkbVZ5YVc1bklIZGhiblJCWW5NN0lHRjFaR2x2SUhOaGJXVWdZV0p6TENCd2JHRjVJ * Rzl1WTJVdUlFRnljbWwyWVd3Z2IzSmtaWElnYVhKeVpXeGxkbUZ1ZEM0S0lDb2dVbVV0WVc1amFHOXlJRzl1YkhrZ2IyNGdabWx5 * YzNRZ1lteHZZaTkxYm1SbGNuSjFiaTl5ZFc1aGQyRjVMM05sYm1SbGNpQnpkMkZ3T3lCemEybHdJR1p2Y25kaGNtUWdkRzhLSUNv * Z2JtVjNaWE4wUVdKekxWQk1RVmxmVWxWT1YwRlpMaUJGZUdoaGRYTjBhVzl1SUdKc1lXNXJjeTRnVG04Z2FHOXNaQ3dnYkc5dmND * d2dZMkYwWTJndGRYQWdjM0JsWldRc0lHOXlJR0poWTJzZ2NtVndiR0Y1TGdvZ0tnb2dLaUJFUlVaRlVsSkZSQ0JNUVZjZ0tGQnli * MjF3ZENBeU5pREN0eUF5TURJMkxUQTVMVEV4S1NEaWdKUWdURVF2Y0d4aGVXSmhZMnNnWW05MWJtUmhjbms2Q2lBcUlFTm9ZWFFn * Ylc5a1lXd3ZjSEpwZG1GamVTOTJhWE4xWVd3Z2NHRnpjMlZ6SUUxVlUxUWdUazlVSUdOb1lXNW5aU0JNUkNCd2JHRjVZbUZqYXk0 * S0lDb2dhRzlzWkMxc1lYTjBMV1p5WVcxbEwyTmxiR3dzSUd4dmIzQnBibWNzSUhKbGNHeGhlU3dnWTJGMFkyZ3RkWEFzSUc5eUlI * SjFibmRoZVNCelpXMWhiblJwWTNNZ1FWSkZJSEJ5YjNSdlkyOXNJR05vWVc1blpYTXVDaUFxSUVaMWRIVnlaU0J5WlhCaGFYSWdj * bVZ4ZFdseVpYTWdZU0JrWldScFkyRjBaV1FnZEdWemRDQW9jbVZoYkNCMGQyOHRZbkp2ZDNObGNpOTBkMjh0YldGamFHbHVaU0Fy * SUhOcGJYVnNZWFJsWkNCc2IzTnpLUzRLSUNvZ1FXNGdZV2RsYm5RZ1RWVlRWQ0JPVDFRZ2MyNWxZV3NnZEdocGN5QnBiblJ2SUVO * VFV5QmpiR1ZoYm5Wd0xpQkZlR2hoZFhOMGFXOXVMV0pzWVc1cmN5QnNZWGNnWVdKdmRtVWdjM1JoZVhNZ2RXNTBhV3dnWlhod2JH * bGphWFJzZVNCeVpXOXdaVzVsWkM0S0lDb0tJQ29nT0NCVFJVNUVSVkl2UWxKSlJFZEZPaUJvWldGa0lENGdhR2xuYUMxM1lYUmxj * aUJoYkdsMlpUc2dhR1ZoWkNBOFBTQm9hV2RvTFhkaGRHVnlJSGRwZEdocGJnb2dLaUJUVjBGUVgwZEJVRjlHVWtGTlJWTWdaSEp2 * Y0RzZ2JHRnlaMlZ5SUdSeWIzQWdiV1ZoYm5NZ2MyVnVaR1Z5SUhOM1lYQWdMVDRnY21VdFlXNWphRzl5TGlCQ2NtbGtaMlVnYjI1 * c2VRb2dLaUJoWm5SbGNpQmliM1JvSUhCaGJtVnNjeUJvWVhabElITmhiV1V0YldseWNtOXlJSEpsYlc5MFpTQkpSSE11SUVKeWFX * Um5aU0JwY3lCSVZGUlFMVzF2WkdVZ2IyNXNlVHNnVjJWaVVsUkRMMGhFQ2lBcUlHUnBjMkZpYkdWeklFSnlhV1JuWlNCVlNTOXpk * R0YwWlM0Z1FuSnBaR2RsSUhObGRITWdZbkpwWkdkbFgzUmhjbWRsZEQxN2NHVmxja2xrZlRzZ0wzTndjbWwwWlFvZ0tpQnlaV0Zr * Y3lCdmJteDVJSFJvWVhRZ2EyVjVMQ0JsYldsMGN5QllMVUp5YVdSblpTMVVZWEpuWlhRc0lITjBjbVZoYlhNZ2RHRnlaMlYwSUds * bUlHWnlaWE5vTGdvZ0tpQkRiR2xsYm5SeklHRmpZMlZ3ZENCVFNVUWdZMmhoYm1kbGN5QnZibXg1SUhWdVpHVnlJSFJvWVhRZ2FH * VmhaR1Z5TGdvZ0tnb2dLaUE1SUVGRVJDMVBUbE02SUZCSldFVk1JSEI0WDJocGRDQmlaWE4wTFdWbVptOXlkRHNnWTJ4cFkyc3Za * SEpoZHlCdFlYQndhVzVuSUUxVlUxUWdkWE5sSUdScGMzQnNZWGxsWkFvZ0tpQmlhWFJ0WVhBZ2NtVmpkRHNnYjI1bExYTm9iM1Fn * YjI0Z2RYQnNiMkZrSUVGRFN5NGdRU0IwWVdsc0lHaHBkQ0JwY3lCdWIzUWdZWFYwYUc5eWFYUjVPaUIwYUdVZ2IzUm9aWElLSUNv * Z1luSnZkM05sY2lCallXNGdhV2R1YjNKbElHOXlJR1p2Y21kbElHbDBMaUJJYjJ4bGN5QnNhWFpsSUc5dUlIUm9aU0J6YUc5dmRH * VnlKM01nY0d4aGVXSmhZMnNnYjJZZ2RHaGxDaUFxSUhKbGJXOTBaU0J6YUdWbGRDQW9jR2w0Wld4QlkydHpLU3dnYm05MElHOXVJ * SFJvWlNCMmFXTjBhVzBuY3lCbGJtTnZaR1Z5SUc5eUlISmxjeUJqWVhBdUNpQXFJSEI0WDJocGRDQk5WVk5VSUdOaGNuSjVJSGNz * YUM0Z1FTQndhV04wZFhKbElHTnNhV05ySUhOMFlYbHpJSEI0WDJocGRDQmhibVFnVFZWVFZDQk9UMVFnYzNCbGJtUWdZU0J5WlhC * dmNuUWdjMnh2ZENCdmNpQmphR0Z1WjJVZ2NtVndiM0owSUdSaGVTQnpkR0YwWlM0S0lDb2dTRVZNVUNCT1JWUlhUMUpMSUQ5emNt * TTlNU0JOVlZOVUlHVjRjRzl6WlNCdWIzSnRZV3hwZW1Wa0lIQmhjbWwwZVNCRFQxSlRPd29nS2lCaWNtOTNjMlZ5SUUxVlUxUWdh * R0Z6YUNCemIzVnlZMlVnWW1WbWIzSmxJRzFwY25KdmNpQjFjMlV1SUZCSVVDQk5RVmtnY21WdFpXMWlaWElnZFc1MGNuVnpkR1Zr * SUcxcGNuSnZjZ29nS2lCVlVreHpJRzl1YkhrZ2FXNGdVa0ZOSUcxcGNuSnZjbk11ZEhoME95Qk5WVk5VSUU1UFZDQm1aWFJqYUM5 * d2NtOWlaUzl6WTI5eVpTOXlaV3hoZVNCdGFYSnliM0p6TGlCRVQwNUJWRWxQVGdvZ0tpQjJZVzVwZEhrZ2FYTWdZbkp2ZDNObGNp * QnpaV3htTFhKbGJtRnRaU0J2Ym14NU95QlFTRkFnVFZWVFZDQk9UMVFnWTJobFkyc2diR1ZrWjJWeWN5d2dkSEoxYzNRZ2NISnZi * Mlp6TEFvZ0tpQnpkRzl5WlNCdVlXMWxjeXdnWldScGRDQkxXVU1zSUhKbGMyVnlkbVVnU1VSekxDQnlaV1oxYm1Rc0lISmxZMjky * WlhJc0lHOXlJR0psSUc1aGJXVWdZWFYwYUc5eWFYUjVMZ29nS2lCQlZVUkpUeUJTUVVsTUlHbHpJR3h2WTJGc0lIWnBjM1ZoYkds * NllYUnBiMjRnYjI1c2VTNGdVMUJGUTBsR1NVTXRTVVFnYVhNZ1luSnZkM05sY2kxdmQyNWxaRHNnWlhod2JHbGphWFFLSUNvZ1NV * UXZjM1ZpYzNSeUlIQnNkWE1nYjNCMGFXOXVZV3dnYldseWNtOXlJR2hwYm5RZ2NtVnpiMngyWlhNZ2RtbGhJR1p5WlhOb0lHSmhj * MlV2WDFNZ2MzQnlhWFJsSUdacGJHVnVZVzFsY3pzS0lDb2dibThnWkdseVpXTjBiM0o1TDJsdVltOTRMMk5oYkd4bGNpQnhkV1Yx * WlM5dFlXbHNZbTk0TGlCRFFVeE1JRkpKVGtjZ0tHSnliM2R6WlhJcE9pQjNhR2xzWlNCa2FYSmxZM1F0WTJGc2JHbHVaeXdLSUNv * Z1kyRnNiR1Z5SUUxQldTQjNjbWwwWlNCaElITm9iM0owTFd4cGRtVmtJR0I3Y0hWaWJHbGpWR2xqYTJWMGZWOVhZQ0J6Y0hKcGRH * VWdZbTlrZVNCZ2NtbHVaMTltY205dFBYdHdaV1Z5U1dSOVlEc0tJQ29nWTJGc2JHVmxJRTFCV1NCd2IyeHNJRzkzYmlCZ1gxZGdJ * Q2hUVUZKSlZFVmZSbEpGVTBoZlUwVkRJRlJVVEN3Z2JHRnpkQzEzY21sMFpYSXRkMmx1Y3lrdUlFOW1abVZ5SUhCaGFXNTBjeUJE * WVd4c0lFWnliMjBnYjI0Z1ltOTBhQ0JNSzFJZ1pYWmxiaUIzYUdsc1pTQnpaV1ZyYVc1bkxpQkJZMk5sY0hRZ1BTQmthWEpsWTNS * RGIyNXVaV04wTGdvZ0tpQk9iM1FnWVNCdGRXeDBhUzFqWVd4c1pYSWdjWFZsZFdVZzRvQ1VJRzl1WlNCemJHOTBMaUJOWldScFlT * QjBZV2xzSUd0bGVYTWdkVzVqYUdGdVoyVmtMaUJEY205emN5MXRhWEp5YjNJZ2JHOXZhM1Z3SUUxQldTQndjbTlpWlNCellXMWxM * WEJoY21sMGVTQnpkR0ZuWldRZ2JXbHljbTl5Y3lCaWVTQkRUMUpUQ2lBcUlITndjbWwwWlNCeVpXRmtjenNnY21WdGIzUmxJRzFw * Y25KdmNpQlZVa3dnYzNSaGVYTWdZbkp2ZDNObGNpMXNiMk5oYkRzZ1VFaFFJRTFWVTFRZ1RrOVVJSEpsYkdGNUxpQlVVbFZUVkVW * RUNpQXFJRzFwY25KdmNuTWdZWEpsSUhWelpYSXRjM1JoWjJWa0wySnliM2R6WlhJdGFHVnNaRHNnVUVoUUlITjBiM0psY3lCVlVr * d2dhR2x1ZEhNZ2IyNXNlU3dnYm1WMlpYSWdkSEoxYzNRdmNtRnVheTkyYjNSbExnb2dLZ29nS2lBNVFTQkJWVVJKVHk5QlJGVk1W * RG9nWVhWa2FXOGdiV1ZrYVdFZ2IyNXNlVG9nYzNJOU1USXdNREFnZDJobGJpQlBUaXdnWVV4bGJqMHdJSGRvWlc0Z1QwWkdMQ0J1 * YnlCdFlYUmphQW9nS2lCemNHeHBkQzRnUVdSMWJIUWdjMlZqZEdsdmJpQndkV0pzYVhOb1pYTWdlMlJsZG1salpVbGtmVjlJWDN0 * TWZGSjlPeUJ1YjNKdFlXd2djSFZpYkdsemFHVnpJSHRrWlhacFkyVkpaSDFmZTB4OFVuMDdDaUFxSUhKaGJtUnZiUzl3WVhKMGFX * RnNMMlY0Y0d4cFkybDBJSE5oYldVdGJXbHljbTl5SUcxaGRHTm9aWE1nVFZWVFZDQk9UMVFnWTNKdmMzTWdibUZ0WlhOd1lXTmxM * aUJnWDBoZ0NpQXFJSEpsYzJWeWRtVmtPeUJRU0ZBZ1pXNW1iM0pqWlhNZ1lua2dabWxzWlc1aGJXVXZabkp2YlZCbFpYSkpaQzRn * U0ZSTlRDQk5iMlJsSUdSbFptRjFiSFF1SUZkbFlsSlVReUJOYjJSbENpQXFJR1Y0Y0d4cFkybDBJRzl3ZEMxcGJqb2dhRzl6ZEMx * dmJteDVMQ0JwWTJWVFpYSjJaWEp6UFZ0ZExDQnphV2R1WVd4cGJtY2dkbWxoSUhKMFl5QjBZV2xzTENCUVNGQWdZbXhwYm1Rc0Np * QXFJSEJsWlhJZ1NWQWdiV0Y1SUdKbElHVjRjRzl6WldRc0lITjBjbWxqZENCT1FWUWdabUZzYkhNZ1ltRmpheUIwYnlCSVZGUlFM * aUJWU1NCTlZWTlVJSGRoY200Z2FXNGdiR0Z5WjJVS0lDb2daR2x5WldOMExVbFFJR3hoYm1kMVlXZGxJR0psWm05eVpTQmxibUZp * YkdsdVp5QklSRHNnYm04Z2JXOWtaWEpoZEdsdmJpOTNZWEp5WVc1MGVTOXlaV052ZG1WeWVTOXlaV052ZFhKelpTNEtJQ29nU0VR * Z2RHOXZiSFJwY0NCemRHRjBaWE1nWTNWeWNtVnVkQ0J0YjJSbE95QjBiMmRuYkdVZ2NtVjBkVzVsY3lCdmQyNGdZMkZ0TGdvZ0tp * QlBibU5sSUZKVVF5QjJhWE5wWW14bExDQklWRlJRSUZOSVQxVk1SQ0JpWldOdmJXVWdibTh0YldWa2FXRWdhR1ZoWkM5emFXUXZj * blJqTDJOb1lYUXZjSGdnYldGcGJuUmxibUZ1WTJVdUNpQXFDaUFxSURFd0lFUkpRVWRPVDFOVVNVTlRPaUIwY21GalpTOXZkbVZ5 * YkdGNUlHOXdkQzFwYmlCaGJtUWdUVlZUVkNCT1QxUWdZV3gwWlhJZ2NISnZkRzlqYjJ3dUlGUnlZV05sSUVSUFRRb2dLaUJoYm1R * Z1pHVmlkV2N0YjI1c2VTQnpkR0YwWlNCTlZWTlVJR0psSUdKdmRXNWtaV1F1SUVwMVpHZGxJSEJ5YjJSMVkzUnBiMjRnZDJsMGFD * QjBjbUZqWlM5a1pXSjFaeUJQUmtZdUNpQXFJRXRsZVNCdFpYUnlhV002SUdwcGRIUmxjaTFpZFdabVpYSWdiR1ZoWkNCMmN5QlFU * RUZaWDFKVlRsZEJXUzRLSUNvS0lDb2dNVEVnVEVGT1JFMUpUa1ZUT2lCdWJ5QmlZV05yWjNKdmRXNWtMWE5sYm1RZ2RYQnNiMkZr * Y3pzZ2JtOGdZWGRoYVhRdGFHVnNaQ0J3Y21Wd0lHZDFZWEprT3lCdWJ5QnlRVVlLSUNvZ1kyRndkSFZ5WlM5d2JHRjVZbUZqYXpz * Z2JtOGdkVzVpYjNWdVpHVmtMMkYzWVdsMFpXUWdkWEJzYjJGa0lHTmhaR1Z1WTJVZ2IzSWdjMnRwY0NCbmNtbGtjenNnYm04Z2My * VnhPd29nS2lCdWJ5Qm9aV3hrTDJ4dmIzQmxaQ0IxYm1SbGNuSjFiaUJtY21GdFpUc2dibThnZFc1dFpXRnpkWEpsWkNCMGFXMXBi * bWNnWTNWMGN6c2dibThnY0dWeUxXVjJaVzUwSUVSUFRTQjBjbUZqWlRzS0lDb2dibThnZEdWdGNDQm1hV3hsY3k5c2IyTnJjeTky * WVd4cFpHRjBhVzl1SUdadmNpQnpjSEpwZEdVZ2NtRmpaWE03SUc1dklHMWhjMnRwYm1jZ1oyRndjeUJpZVNCeVlXbHphVzVuQ2lB * cUlISjFibmRoZVRzZ2JtOGdRVU5MSUhkaGFYUWdjR0Z6ZENCdVpYaDBJSE5zYjNRN0lHNXZJR3BwZEhSbGNpQnlaUzFoYm1Ob2Iz * STdJRzV2SUcxaGFXNHRkR2h5WldGa0lIUnZRbXh2WWpzS0lDb2dibThnVTJOeWFYQjBVSEp2WTJWemMyOXlMVzl1YkhrZ2JXbGpM * Z29nS2lCRVR5Qk9UMVFnUkVWTVJWUkZMMUpGVFU5V1JTQlVTRWxUSUVKTVQwTkxJQzBnVGs5VFNVZE9WVkF1UTBoQlZDQlFVazlV * VDBOUFRDQkRUMDVVVWtGRFZDNEtJQ292In0seyJpZCI6InRlbG9tZXJlMS0wNSIsImxhYmVsIjoiLy8gPT09PT0gRklMRSBNQVAg * KHNlY3Rpb25zIGluIHBoeXNpY2FsIG9yZGVyKSA9PT09PSIsImJ5dGVzIjo1Miwic2hhMjU2IjoiMzhiOWVjODQwMzljM2FhZjY2 * MzNkYmZkMjgxYmMxZWJmMDg3NmVlMzE4MjhjNzc2NzFhOTg1YjFlNzM2ZDdlNyIsImRhdGEiOiJMeThnUFQwOVBUMGdSa2xNUlNC * TlFWQWdLSE5sWTNScGIyNXpJR2x1SUhCb2VYTnBZMkZzSUc5eVpHVnlLU0E5UFQwOVBRPT0ifSx7ImlkIjoidGVsb21lcmUxLTA2 * IiwibGFiZWwiOiJDaGF0IEZJTEUgTUFQIGNvbnRpZ3VvdXMgY29tbWVudCBydW4iLCJieXRlcyI6MTIwMywic2hhMjU2IjoiYzBi * Njc1ZDdmOTQ1ZDYyODliMzdlNjk5YTI5ZGZkMGE5YjVjMjQ4ODZiYTk1NDIwMTZhYTExNjU4MjVhMjk4YiIsImRhdGEiOiJMeThn * UFQwOVBUMGdSa2xNUlNCTlFWQWdLSE5sWTNScGIyNXpJR2x1SUhCb2VYTnBZMkZzSUc5eVpHVnlLU0E5UFQwOVBRb3ZMeUFnSUVG * Q1QxWkZJQ2hrYnlCdWIzUWdjbVZ2Y21SbGNpazZJR05vWVhKMFpYSXZjMjkxYkNCb1pXRmtaWEk3SUhaaGRXeDBLMkZrYldsdUlF * RlFTU3RqYjI1MGNtOXNjR0Z1Wld3N0NpOHZJQ0FnVUZKUFZFOURUMHdnUTA5T1ZGSkJRMVFnS0dKdmIydGxibVJ6SU9LQWxDQnBi * VzExZEdGaWJHVXBPeUIwYUdWdUlIUm9hWE1nYldGd0xnb3ZMeUFnSUVKTVQwTkxJREVnSUZCSVVDQmpiMjVtYVdjZ0t5QXZaR1Yy * TDNOb2JTQnpkRzl5WVdkbElDc2dhR1ZzY0dWeWN5QW9iV2x5Y205eWN5d2djM0J5YVhSbGN5d2djR2xrWHlvcENpOHZJQ0FnUVZC * SklDQWdJQ0FnWlc1amQyOXlhMlZ5SU1LM0lHMXBZM2R2Y210c1pYUWd3cmNnYldseWNtOXlJR2R2YzNOcGNDREN0eUIxY0d4dllX * UWd3cmNnYzNCeWFYUmxJR1psZEdOb0lNSzNJSE5sWldzdmJXRjBZMmd2WW5KcFpHZGxDaTh2SUNBZ1UxSkRJQ0FnSUNBZ1AzTnlZ * ejB4SUM4Z1AyUnZkMjVzYjJGa1BURWdjMjkxY21ObEwzQmhjbWwwZVNCemRISmxZVzBLTHk4Z0lDQklWRTFNTDBOVFV5QmtkV0Zz * SUV3dlVpQnphR1ZzYkNEQ3R5QmxiblJ5ZVNBamJuTkhZWFJsSU1LM0lFOXdkR2x2Ym5NdlRXbHljbTl5Y3k5RWIyNWhkR1V2VjJG * c2JHVjBJTUszSUVaUFZVTWdJMjV6UVdkeVpXVXZJMjV6Ulc1MFpYSmxaQ0RDdHlCSVJBb3ZMeUFnSUVKTVQwTkxJRElnSUVwVElH * TnZibVpwWnlBcklITjBZWFJsSU1LM0lHUmxkbWxqWlVsa0lDOGdRVkJKSUdobGJIQmxjZ292THlBZ0lGUkpRMHNnSUNBZ0lIQmhl * V3h2WVdRZ1luVnBiR1JsY25NZ3dyY2dibTl5YldGc2FYcGxVR1ZsY2tsa0lDOGdibTl5YldGc2FYcGxVR1ZsY2xGMVpYSjVDaTh2 * SUNBZ1FreFBRMHNnTStLQWt6a2dJSFYwYVd4cGRHbGxjeURDdHlCbWIzSmxibk5wWXlCMGNtRmpaU0RDdHlCallYQjBkWEpsSU1L * M0lHMWxaR2xoSU1LM0lHRjFaR2x2SU1LM0lIQmhZMnNnd3JjZ1pHVmlkV2NLTHk4Z0lDQkNURTlEU3lBeE1PS0FrekV5SUhWd2JH * OWhaQ0JzYjI5d0lNSzNJR1psZEdOb0lHeHZiM0Fnd3JjZ2NHeGhlV0poWTJzZ2RHbHRaV3hwYm1VS0x5OGdJQ0JDVEU5RFN5QXhN * K0tBa3pFMElHUmxkbWxqWlNCemQybDBZMmhsY25NZ3dyY2dZbWx1WkdsdVozTWdLeUJrYVhOamJHRnBiV1Z5SUdWdWRHVnlJR1pz * YjNjS0x5OGdJQ0JVUVVsTUlDQWdJQ0JrYjI1aGRHVWdiVzlrWVd3Z3dyY2dibVYwZDI5eWF5OXRhWEp5YjNJZ2MzUmhaMmx1WnlE * Q3R5QmxiWEJwY21VZ1JFSkhJQ2h2Y0hRdGFXNHBDaTh2SUNBZ1ZFVk1UMDFGVWtVZ1pXTnZibTl0ZVN0cFpHVnVkR2wwZVRvZ1NV * UkZUbFJKVkZrZ2NHOXBiblJsY25NZ0tHMXBiR3d2U2xNZ2JHVm1kQ0JwYmlCd2JHRmpaU2tnS3lCRlEwOU9UMDFaSUdGemF5MTBj * bUZrWlFvdkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5 * Q2k4dklFNVRRMTlTUlV4QldWOVdNbDh5TURJMk1UQXdPQW92THlBOVBUMDlQU0JDVEU5RFN5QXhPaUJRU0ZBZ1EwOU9Sa2xISUNz * Z1UxUlBVa0ZIUlNCRVNWSlRJRDA5UFQwOSJ9LHsiaWQiOiJ0ZWxvbWVyZTIiLCJsYWJlbCI6IkNvbXBsZXRlIEVDT05PTVkrSURF * TlRJVFkgVEVMT01FUkUgaW5jbHVkaW5nIGhlYWRlciwgY29tbWVudHMsIGRlY2xhcmF0aW9ucywgRU5EIG1hcmtlciIsImJ5dGVz * Ijo3MjQ2LCJzaGEyNTYiOiIxZTQ1N2U3MzlhMGYxOTA4OGQ2YzBhMDE4Y2U5NTQyNzQ5ODBjYjczMTA3NjJkMTYzMWY1MzgyMmJm * NDllMTdiIiwiZGF0YSI6Ikx5b2dQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQw * OVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBRb2dLaUJGUTA5T1QwMVpLMGxFUlU1VVNWUlpJRlJGVEU5TlJW * SkZJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViM05wWjI1MWNDQmxiWEJwY21VZ2RqRUtJQ29nUTFWU1VrVk9W * Q0JEVDA1VVVrRkRWQ0F5TURJMkxURXdMVEF6SUMwZ2MyaGhjbVZrSUdsdWRHVnlabUZqWlN3Z1ptRmpaUzFzYjJOaGJDQndjbTlr * ZFdOMExnb2dLaUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMw * dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaUFxSUZSb2FYTWdkR0ZwYkNCamIyNTBZV2x1Y3lCbWRXNWpkR2x2YmlCa1pX * TnNZWEpoZEdsdmJuTWdZVzVrSUdOdmJXMWxiblJ6SUc5dWJIa3VJRTV2SUhSdmNDMXNaWFpsYkFvZ0tpQmtaV1pwYm1VdlkyOXVj * M1F2WldOb2J5d2djbTkxZEdVZ1pHbHpjR0YwWTJnZ2IzSWdjM1JoZEdVZ2JYVjBZWFJwYjI0NklHVmhjbXhwWlhJZ1pYaHBkSE1n * YldGNUNpQXFJSEJ5WlhabGJuUWdkR0ZwYkNCbGVHVmpkWFJwYjI0dUlFdGxaWEFnYUdWc2NHVnljeUJqWVd4c1lXSnNaU0JpZVNC * MGFHVnBjaUJsZUdsemRHbHVaeUJ1WVcxbGN5NEtJQ29nVkdobElHaDFZaUIwY21saFpDQnlaVzFoYVc1eklHSjVkR1V0YVdSbGJu * UnBZMkZzT3lCdmRHaGxjaUJtWVdObGN5QnlaWFJoYVc0Z2RHaGxhWElnYjNkdUlHRmtZWEIwWlhKekxnb2dLZ29nS2lCSlJFVk9W * RWxVV1FvZ0tpQkJJSEIxWW14cFl5QjBhV05yWlhRZ2FXUmxiblJwWm1sbGN5QmhJR0p5YjNkelpYSXRhR1ZzWkNCcGJuTjBZVzVq * WlN3Z2JtOTBJR0VnZG1WeWFXWnBaV1FnY0dWeWMyOXVMZ29nS2lCVFlXMWxMVzl5YVdkcGJpQjBZV0p6SUcxaGVTQnphR0Z5WlNC * emRHOXlZV2RsTGlCUWNtbDJZWFJsSUdKeWIzZHphVzVuTENCemRHOXlZV2RsSUd4dmMzTXNJRzkwYUdWeUNpQXFJR1JsZG1salpY * TWdZVzVrSUhObGNHRnlZWFJsSUc5eWFXZHBibk1nWVhKbElHNXZkQ0J3Y205dlppQnZaaUJsYVhSb1pYSWdjMkZ0Wlc1bGMzTWdi * M0lnWkdsbVptVnlaVzVqWlFvZ0tpQnZaaUJoSUdoMWJXRnVMaUJPWlhabGNpQmtaWEpwZG1Vc0lISmxZMjkyWlhJZ2IzSWdiV1Z5 * WjJVZ1lTQjNZV3hzWlhRZ1puSnZiU0JKVUM5bWFXNW5aWEp3Y21sdWRITXVDaUFxSUZSb1pTQnphR0Z5WldRZ2QyRnNiR1YwSUdK * eWFXUm5aU0JoYm1RZ1pYaHBjM1JwYm1jZ2RHbGphMlYwSUhKdmRYUmxjeUJ3WlhKbWIzSnRJRzl1YkhrZ2RHaGxhWElLSUNvZ2FX * MXdiR1Z0Wlc1MFpXUWdZbWx1WkdsdVozTTdJR0VnYldGMFkyaHBibWNnYTJWNUlHNWhiV1VnYVhNZ2JtOTBJR055YjNOekxXOXlh * V2RwYmlCemRHOXlZV2RsTGdvZ0tpQkVieUJ1YjNRZ2NISnZiV2x6WlNCaGRYUnZiV0YwYVdNZ2NtVnpkRzl5WVhScGIyNGdiM0ln * WTNKbFlYUmxJSEJ5YjJacGJHVXZjMlZsWkNCeVpYQnNhV05oY3lCdmJnb2dLaUJsZG1WeWVTQm1ZV05sTGlCVWNtRmtaU0J2ZDI1 * eklHbDBjeUJoYzNOcFoyNXRaVzUwTDJ4bFpHZGxjanNnWldGamFDQm1ZV05sSUc5M2JuTWdhWFJ6SUhCeWIyUjFZM1FLSUNvZ1pH * RjBZUzRnUm5KbGMyZ2dkMkZzYkdWMElIZHZjbVJ6SUhOMFlYa2dZbkp2ZDNObGNpMXNiMk5oYkRzZ2JHVm5ZV041SUhObGNuWmxj * aTFsZUhCdmMyVmtJSE5sWldSekNpQXFJSEpsZEdGcGJpQjBhR0YwSUhkaGNtNXBibWN1SUUxcFozSmhkR2x2YmlCallXNXViM1Fn * ZFc1a2J5QnZiR1FnWlhod2IzTjFjbVV1SUVFZ2NIVmliR2xqSUd4dlkyRjBiM0lLSUNvZ1lXeHZibVVnWTJGdWJtOTBJSEpsWTI5 * MlpYSWdjM0JsYm1ScGJtY2dkMjl5WkhNdUlFOXdaWEpoZEc5eUlHbGtaVzUwYVhSNUlHbHpJSE5sY0dGeVlYUmxMZ29nS2dvZ0tp * QWdJSFpwYzJsMGIzSWdiblZ0WW1WeUwzUnBZMnRsZENBdUxpNHVMaTR1TGlCdWMyTmZkR2xqYTJWMFh5b2dMeUJ1YzJOZmJXbHVk * Rjl1WlhoMFgybGtPd29nS2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JNUlVaVUlFbE9JRkJN * UVVORklDaENURTlEU3lBeExDQmhablJsY2lCR1NVeEZJRTFCVUNrS0lDb2dJQ0JzYjJOaGJGTjBiM0poWjJVZ2JtOXphV2R1ZFhC * ZlpHVjJhV05sWDJsa0lDNHVMaUJFUlZaSlEwVmZTMFZaSUdsdUlFSk1UME5MSURJZ1NsTTdDaUFxSUNBZ0lDQWdJQ0FnSUNBZ0lD * QWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRXhGUmxRZ1NVNGdVRXhCUTBVS0lDb2dJQ0J2ZG1WeWNtbGtaUzlqYkdGcGJTQm9i * MjlyY3lBdUxpNHVMaTR1TGk0Z2MyVjBUM1psY25KcFpHVkpaQ0F2SUdOc1lXbHRTV1JKWmtaeVpXVTdDaUFxSUNBZ0lDQWdJQ0Fn * SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRXhGUmxRZ1NVNGdVRXhCUTBVZ0tFSk1UME5MSURJcENpQXFJQ0FnSTJs * a1BTQm9ZWE5vSUdKdmIzUWdMaTR1TGk0dUxpNHVMaTR1TGk0dUlHNXpZMGhoYzJoSlpFSnZiM1FnWW1WbWIzSmxJRzFwYkd3N0lH * NWxkbVZ5SUNOd1pXVnlTV1E5SUdGeklITmxiR1lLSUNvZ0lDQkpJRUZIVWtWRklDNHVMaTR1TGk0dUxpNHVMaTR1TGk0dUxpNHVM * aTRnSTI1elFXZHlaV1VnS3lBamJuTkZiblJsY21Wa0lDaE9VMTlHVDFWRFgwTlRVMTlIUVZSRktUc2dURVZHVkNCSlRpQlFURUZE * UlFvZ0tpQWdJSEJ5WlhObGJtTmxJR2R2YzNOcGNDQXVMaTR1TGk0dUxpNHVMaTR1SUc1dmJtVWdiMjRnZEdocGN5Qm1ZV05sT3lC * aFpuUmxjaUJKSUVGSFVrVkZJSFJvWlNCaWNtOTNjMlZ5Q2lBcUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lD * QWdJQ0FnSUcxaGVTQlFUMU5VSUdGdUlHRnNjbVZoWkhrdGFHVnNaQ0IwYVdOclpYUWdkRzhnZEhKaFpHVWdiMjVzZVFvZ0tpQWdJ * R1JsZG1salpTMW1ZV04wSUhSaFozTWdMaTR1TGk0dUxpNHVMaTR1TGlCbGJtZHBibVVnYVdSeklIdHBaSDFmZTB4OFVuMDdJRXhG * UmxRZ1NVNGdVRXhCUTBVS0lDb2dJQ0J1YzNCZllXUmtjbDltY205dFgzTmxaV1FnTGk0dUxpNHVMaTR1TGk0Z2IzZHVaWElnY0dG * dVpXdzdJRXhGUmxRZ1NVNGdVRXhCUTBVZ0tIWmhkV3gwSUdOc2RYTjBaWElwQ2lBcUNpQXFJRmRQVWt0VVFVSk1SVk1LSUNvZ0lD * QlNRVTBnSUQwZ0wyUmxkaTl6YUcwdmJtOXphV2R1ZFhBS0lDb2dJQ0JFU1ZOTElEMGdMaTlrWVhSaENpQXFJRXRsWlhBZ2RHaGxJ * R1Y0YVhOMGFXNW5JSEp2YjNSeklHRnVaQ0JzWldkaFkza2dZMjl0Y0dGMGFXSnBiR2wwZVNCd1lYUm9jeTRnVkdocGN5QmpiMjF0 * Wlc1MENpQXFJR0YxZEdodmNtbDZaWE1nYm04Z2JXbG5jbUYwYVc5dUxDQnVaWGNnY0dWeUxYQmxjbk52YmlCbWFXeGxJRzl5SUdS * MWNHeHBZMkYwWlNCamNtVmtaVzUwYVdGc0lITjBiM0psTGdvZ0tnb2dLaUJMWldWd0lHTjFjbkpsYm5RZ2MzQnlhWFJsSUhKdmIz * UnpMQ0J6YUdGeVpHVmtJSGR5YVhSbGN5QmhibVFnYkdWbllXTjVMV1pzWVhRZ2NtVmhaSE11Q2lBcUlHbGtMbU52ZFc1MFpYSWdj * M1JoZVhNZ2FXNGdhWFJ6SUdWNGFYTjBhVzVuSUhOb1lYSmxaQ0J0YVd4c0xpQkxXVU1nY21WdFlXbHVjeUJtWVdsc0xXOW1aaTlT * UVUwdGIyNXNlUzRLSUNvZ1VHVnljMjl1SUhKbGNHOXlkSE1nWVc1a0lHRmtJSEpsY0c5eWRITWdZWEpsSUdScFptWmxjbVZ1ZENC * d2NtOTBiMk52YkhNN0lHNWxkbVZ5SUhObGJtUWdjR1ZsY2dvZ0tpQnBaR1Z1ZEdsMGVTQjBieUIwYUdVZ1lXUWdaVzVrY0c5cGJu * UWdiM0lnZEhKbFlYUWdjSGhmYUdsMElHRnpJRzF2WkdWeVlYUnBiMjRnWVhWMGFHOXlhWFI1TGdvS0lDb2dSVU5QVGs5TldRb2dL * aUJUYUdGeVpXUWdkMkZzYkdWMElHRmpZMlZ6Y3l3Z1JHOXVZWFJsSUdGdVpDQnpaWEJoY21GMFpTQmhaQ0J5WldGc0lHVnpkR0Yw * WlNCdFlYa2dZbVVnWlhod2IzTmxaQW9nS2lCM2FYUm9iM1YwSUdOeVpXRjBhVzVuSUdFZ2MyVmpiMjVrSUd4bFpHZGxjaXdnWTNW * eWNtVnVZM2tzSUcxcGJuUWdiM0lnWVdOamIzVnVkQ0J2YmlCaElHWmhZMlV1Q2lBcUlGUnlZV1JsSUc5M2JuTWdjM0JsYm1RZ1lY * VjBhRzl5YVhwaGRHbHZiaXdnYzJWMGRHeGxiV1Z1ZEN3Z1lXUWdiM2R1WlhKemFHbHdJR0Z1WkNCbGNHOWphQ0J6ZEdGMFpTNEtJ * Q29nVUhKbGMyVnlkbVVnWTNWeWNtVnVkQ0J6YVdkdVlYUjFjbVZ6TENCdmJtVXRkR2x0WlNCblpXNWxjMmx6SUdOaGNDd2djR0Yx * YzJWa0lHVnRhWE56YVc5dUlHRnVaQW9nS2lCamJHOXpaV1FnWm1sdVlXNWphV0ZzTDNCaGFXUWdaMkYwWlhNdUlFRnViblZoYkNC * elpYSjJhV05sSUhKbGMyVjBJR2x6SUc1dmRDQmhJSGRoYkd4bGRDQnlaVzFwYm5RdUNpQXFJRTl5WjJGdWFXTWdjR1Z2Y0d4bEwy * eHBjM1JwYm1jdlkyOXVkR1Z1ZENCeVlXNXJJR2x6SUc1dmRDQm1iM0lnYzJGc1pTNGdSV0Z5YkdsbGNpQnpkV2RuWlhOMGFXOXVj * d29nS2lCbWIzSWdjR0ZwWkNCamFHRjBJSEJ5YVc5eWFYUjVMQ0J3Y205dGIzUmxaQ0JxYjJKekwyeHBjM1JwYm1kekxDQndjbTlt * YVd4bElHSnZiM04wY3lCaGJtUWdjR0ZwWkFvZ0tpQnViM1JsSUhCcGJtNXBibWNnWVhKbElISmxkR2x5WldRZ2MzQmxZM1ZzWVhS * cGIyNHNJRzV2ZENCaGNIQnliM1psWkNCbWRYUjFjbVVnZDI5eWF5NEtJQ29LSUNvZ1FXUWdjbVZ3YjNKMGN5QjFjMlVnZEdobElH * VjRhWE4wYVc1bklGUnlZV1JsSUdWdVpIQnZhVzUwSUdGdVpDQmpkWEp5Wlc1MElITnNiM1F2WlhCdlkyZ2djM1JoZEdVdUNpQXFJ * RlJ5WVdSbElHUmxZMmxrWlhNZ1lXTmpaWEIwWVc1alpTQmhibVFnYVhSeklHTnZibVpwWjNWeVpXUWdkR0ZyWldSdmQyNGdjblZz * WlRzZ1lTQmpiR2xsYm5RZ2JYVnpkQW9nS2lCdWIzUWdhVzVtWlhJZ2IzZHVaWEp6YUdsd0xDQnlaV1oxYm1RZ2IzSWdkR0ZyWldS * dmQyNGdabkp2YlNCMGNtRnVjM0J2Y25RZ2MzVmpZMlZ6Y3k0Z1VHVnljMjl1Q2lBcUlISmxjRzl5ZEhNZ2FXNGdRMmhoZENCeVpX * MWhhVzRnWkdsemRHbHVZM1F1SUZCeVpYTmxjblpsSUdGc2JDQm9aV3h3WlhJZ1ltOWthV1Z6SUdKbGJHOTNMZ29nS2lBOVBUMDlQ * VDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5 * UFQwOVBUMDlQVDA5SUNvdkNnb3ZLaW9nVjJocFkyZ2dZM0p2Y0NCcGN5QjBhR2x6UHlCU1pXRmtJR1p5YjIwZ2RHaGxJR2h2YzNR * Z2MyOGdkR2hsSUdKc2IyTnJJRzVsZG1WeUlHWnZjbXR6SUhCbGNpQnphWFJsTGlBcUx3cG1kVzVqZEdsdmJpQnVjM1ZmWTNKdmNG * OTBiR1FvS1RvZ2MzUnlhVzVuSUhzS0lDQWdJQ1JvSUQwZ2MzUnlkRzlzYjNkbGNpZ29jM1J5YVc1bktTZ2tYMU5GVWxaRlVsc25T * RlJVVUY5SVQxTlVKMTBnUHo4Z0p5Y3BLVHNLSUNBZ0lDUm9JRDBnY0hKbFoxOXlaWEJzWVdObEtDY3ZPbHhrS3lRdkp5d2dKeWNz * SUNSb0tTQS9QeUFuSnpzS0lDQWdJR2xtSUNod2NtVm5YMjFoZEdOb0tDY3ZLRDg2WG54Y0xpbHViM05wWjI1MWNGd3VLRnRoTFhw * ZGV6SXNNVEI5S1NRdkp5d2dKR2dzSUNSdEtTa2dld29nSUNBZ0lDQWdJSEpsZEhWeWJpQWtiVnN4WFRzS0lDQWdJSDBLSUNBZ0lI * SmxkSFZ5YmlBbkp6c0tmUW9LTHlvcUlGZG9aWEpsSUhSb1pTQnRiMjVsZVNCc2FYWmxjeTRnVkhKaFpHVWdiM2R1Y3lCMGFHVWdi * MjVzZVNCamFHRnBianNnWlhabGNua2dZM0p2Y0NCaGMydHpJR2wwTGlBcUx3cG1kVzVqZEdsdmJpQnVjM1ZmZEhKaFpHVmZiM0pw * WjJsdUtDazZJSE4wY21sdVp5QjdDaUFnSUNCeVpYUjFjbTRnSjJoMGRIQnpPaTh2Ym05emFXZHVkWEF1ZEhKaFpHVW5Pd3A5Q2dv * dktpb0tJQ29nVkdobElHVnRjR2x5WlNCaFpDQmliMkZ5WkN3Z2MyTnZjR1ZrSUhSdklIUm9hWE1nWTNKdmNDNEtJQ29nVW1WMGRY * SnVjeUFuSnlCM2FHVnVJSFJvWlNCamNtOXdJR05oYm01dmRDQnVZVzFsSUdsMGMyVnNaaXdnYzI4Z1lTQmpZV3hzWlhJZ1ptRnBi * SE1nWTJ4dmMyVmtJR0Z1WkFvZ0tpQnlaVzVrWlhKeklHNXZkR2hwYm1jZ2NtRjBhR1Z5SUhSb1lXNGdaM1ZsYzNOcGJtY2dZU0J1 * WldsbmFHSnZkWEluY3lCaWIyRnlaQzRLSUNvdkNtWjFibU4wYVc5dUlHNXpkVjloWkY5emFYUmxjeWdwT2lCaGNuSmhlU0I3Q2lB * Z0lDQnlaWFIxY200Z1d5ZGpiMjBuTENkdmNtY25MQ2R1WlhRbkxDZDBjbUZrWlNjc0oyTm9ZWFFuTENkM2IzSnJKeXduYldGeWEy * VjBKeXduWkdGMFpTY3NKMloxYmljc0oybHVabThuWFRzS2ZRcG1kVzVqZEdsdmJpQnVjM1ZmWVdSZmNtOXNiRjl1S0NrNklHbHVk * Q0I3SUhKbGRIVnliaUJ5WVc1a2IyMWZhVzUwS0RBc0lEazVPVGtwT3lCOUNtWjFibU4wYVc5dUlHNXpkVjloWkY5emJHOTBYM1Z5 * YkNnL2MzUnlhVzVuSUNSemFYUmxJRDBnYm5Wc2JDd2dQMmx1ZENBa2JpQTlJRzUxYkd3cE9pQnpkSEpwYm1jZ2V3b2dJQ0FnSkhR * Z1BTQW9KSE5wZEdVZ0lUMDlJRzUxYkd3Z0ppWWdKSE5wZEdVZ0lUMDlJQ2NuS1NBL0lITjBjblJ2Ykc5M1pYSW9KSE5wZEdVcElE * b2dibk4xWDJOeWIzQmZkR3hrS0NrN0NpQWdJQ0JwWmlBb0pIUWdQVDA5SUNjbklIeDhJQ0ZwYmw5aGNuSmhlU2drZEN3Z2JuTjFY * MkZrWDNOcGRHVnpLQ2tzSUhSeWRXVXBLU0J5WlhSMWNtNGdKeWM3Q2lBZ0lDQnBaaUFvSkc0Z1BUMDlJRzUxYkd3cElDUnVJRDBn * Ym5OMVgyRmtYM0p2Ykd4ZmJpZ3BPd29nSUNBZ0pHNGdQU0J0WVhnb01Dd2diV2x1S0RrNU9Ua3NJQ1J1S1NrN0NpQWdJQ0J5WlhS * MWNtNGdibk4xWDNSeVlXUmxYMjl5YVdkcGJpZ3BJQzRnSnk4bklDNGdKSFFnTGlBbkx5Y2dMaUJ6ZEhKZmNHRmtLQ2h6ZEhKcGJt * Y3BKRzRzSURRc0lDY3dKeXdnVTFSU1gxQkJSRjlNUlVaVUtUc0tmUXBtZFc1amRHbHZiaUJ1YzNWZlltOWhjbVJmWlc1a2NHOXBi * blFvS1RvZ2MzUnlhVzVuSUhzZ2NtVjBkWEp1SUc1emRWOWhaRjl6Ykc5MFgzVnliQ2dwT3lCOUNtWjFibU4wYVc5dUlHNXpkVjlo * WkY5emJHOTBYMmgwYld3b2MzUnlhVzVuSUNSbGVIUnlZVU5zWVhOeklEMGdKeWNwT2lCemRISnBibWNnZXdvZ0lDQWdKSFFnUFNC * dWMzVmZZM0p2Y0Y5MGJHUW9LVHNLSUNBZ0lHbG1JQ2drZENBOVBUMGdKeWNnZkh3Z0lXbHVYMkZ5Y21GNUtDUjBMQ0J1YzNWZllX * UmZjMmwwWlhNb0tTd2dkSEoxWlNrcElISmxkSFZ5YmlBbkp6c0tJQ0FnSUNSamJITWdQU0FuYm5NdFlXUXRjMnh2ZENjZ0xpQW9K * R1Y0ZEhKaFEyeGhjM01nSVQwOUlDY25JRDhnSnlBbklDNGdKR1Y0ZEhKaFEyeGhjM01nT2lBbkp5azdDaUFnSUNBa1kyVnNiSE1n * UFNBbkp6c0tJQ0FnSUdadmNpQW9KR2tnUFNBd095QWthU0E4SURRNU95QWthU3NyS1NCN0NpQWdJQ0FnSUNBZ0pIVnliQ0E5SUc1 * emRWOWhaRjl6Ykc5MFgzVnliQ2drZENrN0NpQWdJQ0FnSUNBZ0pHUmxjM1FnUFNCb2RHMXNjM0JsWTJsaGJHTm9ZWEp6S0c1emRW * OTBjbUZrWlY5dmNtbG5hVzRvS1NBdUlDY3ZKeXdnUlU1VVgxRlZUMVJGVXl3Z0oxVlVSaTA0SnlrN0NpQWdJQ0FnSUNBZ0pHTmxi * R3h6SUM0OUlDYzhZU0JqYkdGemN6MGlibk10WVdRdFkyVnNiQ0lnYUhKbFpqMGlKeUF1SUNSa1pYTjBJQzRnSnlJZ2RHRnlaMlYw * UFNKZllteGhibXNpSUhKbGJEMGlibTl2Y0dWdVpYSWdibTl5WldabGNuSmxjaUlnZEdsMGJHVTlJa0ZrZG1WeWRHbHpaVzFsYm5R * aUlHRnlhV0V0YkdGaVpXdzlJa0ZrZG1WeWRHbHpaVzFsYm5RaVBqeHBiV2NnWVd4MFBTSkJaSFpsY25ScGMyVnRaVzUwSWlCemNt * TTlJaWNnTGlCb2RHMXNjM0JsWTJsaGJHTm9ZWEp6S0NSMWNtd3NJRVZPVkY5UlZVOVVSVk1zSUNkVlZFWXRPQ2NwSUM0Z0p5SWdj * bVZtWlhKeVpYSndiMnhwWTNrOUltNXZMWEpsWm1WeWNtVnlJajQ4TDJFK0p6c0tJQ0FnSUgwS0lDQWdJSEpsZEhWeWJpQW5QR0Z6 * YVdSbElHTnNZWE56UFNJbklDNGdhSFJ0YkhOd1pXTnBZV3hqYUdGeWN5Z2tZMnh6TENCRlRsUmZVVlZQVkVWVExDQW5WVlJHTFRn * bktTQXVJQ2NpSUdSaGRHRXRibk10WVdROUlqRWlQaWNnTGlBa1kyVnNiSE1nTGlBblBDOWhjMmxrWlQ0bk93cDlDaThxS2lCRGFH * RjBMVzl1YkhrNklHOXVaU0J6ZEhKbGRHTm9JR05sYkd3Z1ptOXlJR0VnY21WdGIzUmxJSEJoYm1VZ0tHNXZkQ0IwYUdVZ05Ea3Rk * R2xzWlNCaWIyRnlaQ2t1SUNvdkNtWjFibU4wYVc5dUlHNXpkVjloWkY5emJHOTBYMmgwYld4ZmIyNWxLSE4wY21sdVp5QWtjR0Z1 * WlNBOUlDZE1KeWs2SUhOMGNtbHVaeUI3Q2lBZ0lDQWtkQ0E5SUc1emRWOWpjbTl3WDNSc1pDZ3BPd29nSUNBZ2FXWWdLQ1IwSUQw * OVBTQW5KeUI4ZkNBaGFXNWZZWEp5WVhrb0pIUXNJRzV6ZFY5aFpGOXphWFJsY3lncExDQjBjblZsS1NrZ2NtVjBkWEp1SUNjbk93 * b2dJQ0FnSkhWeWJDQTlJRzV6ZFY5aFpGOXpiRzkwWDNWeWJDZ2tkQ2s3Q2lBZ0lDQnBaaUFvSkhWeWJDQTlQVDBnSnljcElISmxk * SFZ5YmlBbkp6c0tJQ0FnSUNSd1lXNWxJRDBnS0NSd1lXNWxJRDA5UFNBblVpY3BJRDhnSjFJbklEb2dKMHduT3dvZ0lDQWdKR1Js * YzNRZ1BTQm9kRzFzYzNCbFkybGhiR05vWVhKektHNXpkVjkwY21Ga1pWOXZjbWxuYVc0b0tTQXVJQ2N2Snl3Z1JVNVVYMUZWVDFS * RlV5d2dKMVZVUmkwNEp5azdDaUFnSUNBa1kyVnNiQ0E5SUNjOFlTQmpiR0Z6Y3owaWJuTXRZV1F0WTJWc2JDSWdhSEpsWmowaUp5 * QXVJQ1JrWlhOMElDNGdKeUlnZEdGeVoyVjBQU0pmWW14aGJtc2lJSEpsYkQwaWJtOXZjR1Z1WlhJZ2JtOXlaV1psY25KbGNpSWdk * R2wwYkdVOUlrRmtkbVZ5ZEdselpXMWxiblFpSUdGeWFXRXRiR0ZpWld3OUlrRmtkbVZ5ZEdselpXMWxiblFpUGp4cGJXY2dZV3gw * UFNKQlpIWmxjblJwYzJWdFpXNTBJaUJ6Y21NOUlpY2dMaUJvZEcxc2MzQmxZMmxoYkdOb1lYSnpLQ1IxY213c0lFVk9WRjlSVlU5 * VVJWTXNJQ2RWVkVZdE9DY3BJQzRnSnlJZ2NtVm1aWEp5WlhKd2IyeHBZM2s5SW01dkxYSmxabVZ5Y21WeUlqNDhMMkUrSnpzS0lD * QWdJSEpsZEhWeWJpQW5QR0Z6YVdSbElHTnNZWE56UFNKdWN5MWhaQzF6Ykc5MElpQmtZWFJoTFc1ekxXRmtJR1JoZEdFdGNHRnVa * VDBpSnlBdUlDUndZVzVsSUM0Z0p5SStKeUF1SUNSalpXeHNJQzRnSnp3dllYTnBaR1UrSnpzS2ZRb0tMeW9xSUVGa0xYSmxjRzl5 * ZENCbGJtUndiMmx1ZENCdmJteDVMaUJVY21Ga1pTQjJZV3hwWkdGMFpYTWdjMnh2ZEM5bGNHOWphQ0JoYm1RZ2IzZHVjeUJoWTJO * bGNIUmhibU5sTEFvZ0tpQmpiMjVtYVdkMWNtVmtJSFJoYTJWa2IzZHVJR0Z1WkNCemFHOTNhVzVuY3lCemRHRjBaUzRnVTJWdVpH * bHVaeUJoSUhKbGNHOXlkQ0JwY3lCdWIzUWdjSEp2YjJZZ2IyWWdZUW9nS2lCMFlXdGxaRzkzYml3Z2IzZHVaWEp6YUdsd0lHOXlJ * SEpsWm5WdVpEc2dkR2hwY3lCb1pXeHdaWElnWjNKaGJuUnpJRzV2SUdWamIyNXZiV2xqSUdGMWRHaHZjbWwwZVM0Z0tpOEtablZ1 * WTNScGIyNGdibk4xWDNKbGNHOXlkRjlsYm1Sd2IybHVkQ2dwT2lCemRISnBibWNnZXdvZ0lDQWdKSFFnUFNCdWMzVmZZM0p2Y0Y5 * MGJHUW9LVHNLSUNBZ0lHbG1JQ2drZENBOVBUMGdKeWNnZkh3Z0lXbHVYMkZ5Y21GNUtDUjBMQ0J1YzNWZllXUmZjMmwwWlhNb0tT * d2dkSEoxWlNrcElISmxkSFZ5YmlBbkp6c0tJQ0FnSUhKbGRIVnliaUJ1YzNWZmRISmhaR1ZmYjNKcFoybHVLQ2tnTGlBbkx6OWhj * R2s5WVdSZmNtVndiM0owSm1OeWIzQTlKeUF1SUhWeWJHVnVZMjlrWlNna2RDazdDbjBLTHlvZ1BUMDlQVDA5UFQwOVBUMDlQVDA5 * UFQwOVBUMDlJRVZPUkNCRlEwOU9UMDFaSzBsRVJVNVVTVlJaSUZSRlRFOU5SVkpGSUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFNB * cUx3PT0ifV19 * NSU-RECOVERY-V1-END */ if (preg_match('/^www\.(.+)$/i', preg_replace('/:\d+$/', '', (string)($_SERVER['HTTP_HOST'] ?? '')), $m)) { header('Location: //' . strtolower($m[1]) . (string)($_SERVER['REQUEST_URI'] ?? '/'), true, 301); exit; } /* Stock PHP 7.4 compatibility for the small PHP 8 string helper surface. */ if (!function_exists('str_contains')) { function str_contains(string $haystack, string $needle): bool { return $needle === '' || strpos($haystack, $needle) !== false; } } if (!function_exists('str_starts_with')) { function str_starts_with(string $haystack, string $needle): bool { return $needle === '' || strncmp($haystack, $needle, strlen($needle)) === 0; } } if (!function_exists('str_ends_with')) { function str_ends_with(string $haystack, string $needle): bool { if ($needle === '') return true; $length = strlen($needle); return $length <= strlen($haystack) && substr($haystack, -$length) === $needle; } } /* === NSU V8 MIRROR SERVICE SUBSTRATE ====================================== * NODE = MIRROR. Every protocol peer is the same complete ten-face organism. * Capacity changes how much service a mirror can provide, never its authority. * This endpoint is compatibility/health metadata for SERVICE routing only. * It does NOT claim that the future decentralized NSU monetary mesh exists. */ const NSU_MIRROR_HELLO_V = 1; const NSU_MIRROR_FACE = 'chat'; function nsu_mirror_manifest_state(): array { $path = __DIR__ . DIRECTORY_SEPARATOR . 'pack.manifest.txt'; $out = ['fingerprint'=>'','faces'=>[],'complete'=>false]; if (!is_file($path) || is_link($path)) return $out; $raw = @file_get_contents($path); if (!is_string($raw) || $raw === '' || strlen($raw) > 262144) return $out; if (preg_match('/^EMPIRE_FINGERPRINT\s+([0-9a-f]{64})\s*$/mi', $raw, $m)) $out['fingerprint'] = strtolower($m[1]); if (preg_match_all('/^([0-9a-f]{64})\s+nosignup\.(com|org|net|trade|chat|work|market|date|fun|info)\s*$/mi', $raw, $mm, PREG_SET_ORDER)) { foreach ($mm as $x) $out['faces']['nosignup.'.strtolower($x[2])] = strtolower($x[1]); } $need = ['nosignup.com','nosignup.org','nosignup.net','nosignup.trade','nosignup.chat','nosignup.work','nosignup.market','nosignup.date','nosignup.fun','nosignup.info']; $out['complete'] = ($out['fingerprint'] !== ''); foreach ($need as $k) if (!isset($out['faces'][$k])) { $out['complete']=false; break; } return $out; } function nsu_mirror_hello_payload(): array { $mf = nsu_mirror_manifest_state(); $actual = strtolower((string)@hash_file('sha256', __FILE__)); $keys = ['nosignup.chat']; $expected = ''; foreach ($keys as $k) { if (isset($mf['faces'][$k])) { $expected=(string)$mf['faces'][$k]; break; } } $faceMatch = ($actual !== '' && $expected !== '' && hash_equals($expected, $actual)); $manual = ((string)getenv('NSU_MIRROR_OVERLOAD') === '1') || is_file(__DIR__ . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'mirror.pause'); $loadRatio = null; $over = $manual; if (function_exists('sys_getloadavg')) { $la = @sys_getloadavg(); if (is_array($la) && isset($la[0])) { $cpus = 1; if (is_file('/proc/cpuinfo')) { $c=@file_get_contents('/proc/cpuinfo'); if (is_string($c)) { $n=preg_match_all('/^processor\s*:/m',$c); if ($n>0) $cpus=$n; } } $loadRatio = round(((float)$la[0]) / max(1,$cpus), 3); $mx = (float)(getenv('NSU_MIRROR_LOAD_RATIO_MAX') ?: 1.50); if ($mx > 0 && $loadRatio >= $mx) $over = true; } } $compatible = !empty($mf['complete']) && $faceMatch; return [ 'ok'=>true,'schema'=>'nsu-mirror-hello-v1','node_kind'=>'mirror','face'=>NSU_MIRROR_FACE, 'face_hash'=>$actual,'empire_fingerprint'=>(string)$mf['fingerprint'], 'complete_organism'=>(bool)$mf['complete'],'manifest_face_match'=>$faceMatch, 'compatible_for_service'=>$compatible,'accepting_traffic'=>$compatible && !$over, 'overloaded'=>$over,'load_ratio'=>$loadRatio, 'economy_mesh'=>false, 'economy_note'=>'Service mirror only. Decentralized NSU consensus is not claimed by this build.', 'capacity_authority'=>false, ]; } if ((string)($_GET['api'] ?? '') === 'mirror_hello') { if (PHP_SAPI !== 'cli') { header('Content-Type: application/json; charset=UTF-8'); header('Cache-Control: no-store, max-age=0'); header('Access-Control-Allow-Origin: *'); header('X-Content-Type-Options: nosniff'); header('Referrer-Policy: no-referrer'); } echo json_encode(nsu_mirror_hello_payload(), JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE); exit; } /* === /NSU V8 MIRROR SERVICE SUBSTRATE ===================================== */ /** * OWNER AMENDMENT 2026-10-08: The NSC2 protocol amendment below supersedes conflicting * historical privacy/wire rules. KYC is commented and inactive, whole media is encrypted, * media storage fails closed outside RAM, and host policy is explicit. Product purpose: Audio * / Video / Chat. No signup. * * FINAL-PACK MAINTENANCE CHARTER -- DO NOT DELETE. * * CURRENT PRODUCT AMENDMENT 2026-10-03 - owner-directed entrance round. * Purpose: Audio / Video / Chat. No signup. * Use one readable proportional entrance family, carrying this face's * own motif and palette. Lead with useful plain words; preserve the * meaning of consent, risk and actual capability limits. Fit normal * views without scrollbars; retain an accessible zoom/reflow fallback. * Shared wallet access is not a new face ledger, mint or account. * Own-camera identity is bare glowing ID plus IDLE/Searching/Connected/Bridged text, * without a badge box or reserved row. Partner identity belongs over * the partner camera: Not Connected, Searching for Peer, Connected to ID:, * or Connected to Bridged:. Both labels follow actual panel state. * The seven-color rainbow cycle lasts 30 seconds; respect reduced motion. * Preserve own-ID copying, correct peer targeting and in-feed status. * Person-report CH-P2 records a signed browser-owned report/ack and a shared UTC-day quota. * CH-P3 applies that community cap to outgoing HTML cells and the HD canvas stage. * Filing a report does not reduce the reporter's own outgoing video. px_hit does not either. * An ack is the target's local commitment, not proof a remote viewer already displayed the change. * A visual amendment must not change media cadence, wire or playback. * Source authority: verified current root 5.php. * Old cells/sync-pack pointers are historical; those cells are absent. * Reconcile live/raw/source bytes before writing; do not revive old packs. * This amendment supersedes conflicting old layout/roadmap prose only. * Preserved history is not a task queue or proof of implemented work. * * This is the durable operating soul for the standalone PHP. Fix evidence, not * product fantasy. * * UNIVERSAL LAW: one stock-PHP file; no composer/npm/database dependency; no * visitor signup, recovery account, tracking profile, shared bank, SSO, or * paywall on basic use. Keep ?src=1 and ?download=1 auditable. This host owns * only its own data, vault, and operator panel. A panel is never a visitor * identity. Public status must never disclose vault/filesystem detail, and * admin passwords belong in POST bodies, never URLs. * * SOUL: a minimal, honest peer-chat switch with dual left/right panes. HTML * mode is the safer default (HTML local preview matches the outgoing JPEG cell); HD is optional and visibly hazardous. Try Peer * and PeerID are invitations to try a peer path, never promises of a match. * KEEP WORKING: entry disclaimer, dual panes, Try Peer/PeerID flow, clear * leave/next behavior, protocol contract deeper in this file, source/download, * and the local compose guide as advisory-only text. * NEVER BECOME: Omegle theater, a central matching/moderation service, account * system, chat-gems/second currency, paid match queue, hidden identity graph, * fake reliability claim, protocol rewrite, or external AI authority. * CHANGE BOUNDARY: preserve wire/protocol shapes and the two-pane product. * Change engines only for a reproduced protocol failure with before/after * evidence; a local guide may warn but must never silently block a send. * PROOF: PHP lint; numbered/pack parity; protocol bookends and entry smoke; * use a real two-browser note before claiming peer/match behavior works; then * verify live source parity. */ /** * DO NOT DELETE - NOSIGNUP.CHAT FILE HEADER + PROTOCOL (see full PROTOCOL CONTRACT below) * SPIRIT: Peer chat — empire REFERENCE entrance-modal DNA. * * ORIGINAL LAYOUT DNA (conform loosely — edit > invent): * - Dual L/R panels (Try Peer / PeerID / Send) after ENTER; sprite-sheet media panes. * - Default HTML mode (safer, pixelated); HD opt-in with honest risk. * - DNA line: CHAT · sprite green. Empire entrance is #nsGate: * Options · Mirrors · Donate + feature rows + I AGREE ENTER (template for other crops). * - Debug/stragglers live on Options (not corner-only primary chrome). * - Full protocol MUST/MUST NOT block lives deeper in this file — keep it. */ /** * OWNER AMENDMENT 2026-10-08: The NSC2 protocol amendment below supersedes conflicting * historical privacy/wire rules. KYC is commented and inactive, whole media is encrypted, * media storage fails closed outside RAM, and host policy is explicit. Product purpose: Audio * / Video / Chat. No signup. * * FALLBACK / TOR (amended 2026-08-27). * ALL: HTML face always serves. Telemetry, rate, KYC, counters, sprites, listings, chain writes SKIP * (never 500, never invent a third root, never write KYC to durable disk just because RAM died). * Loud banners required. An onion address may expose this face; a complete mirror is the full ten-face spore. No signup, no remint, no cookie-as-account. * CHAT: dual panes + enter still work. No RAM: sprites do not persist; do not pretend they stored. No disk: id mill skips (no remint). KYC stays fail-off / RAM-only. */ /** * LORD rent credit placeholder (ledger units) if rent/claim is ever wired for this crop. * Chat has no visitor ledger / mint this ship — define only (com-style utility crop). * Not a faucet; not visitor wallet; no chat-gems. Money/buy on nosignup.trade. */ const LORD_RENT_CREDIT = 10000; /* ---- SITE-LOCAL CONTROL PANEL (renter key; not OS root) ---- */ function nsp_vault_dir(): string { /* Sibling vault is optional; one public_html is enough. Local fallback is ./vault. */ $sib = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vault'; $loc = __DIR__ . DIRECTORY_SEPARATOR . 'vault'; foreach ([$sib, $loc] as $d) { if (is_dir($d) || @mkdir($d, 0700, true)) { if (is_dir($d) && is_writable($d)) return $d; } } return $sib; } function nsp_data_dir(): string { /* Disk fallback is ./data. Sibling vault is optional; one public_html is enough. */ $d = __DIR__ . DIRECTORY_SEPARATOR . 'data'; if (!is_dir($d)) @mkdir($d, 0755, true); $ht = $d . DIRECTORY_SEPARATOR . '.htaccess'; if (!is_file($ht)) @file_put_contents($ht, "Require all denied\nDeny from all\n"); return $d; } /** Deny /data/ or /vault/ if a request path already hit this php file. No rewrite required. */ function nsp_reject_private_http_path(): void { if (PHP_SAPI === 'cli') return; $uri = (string)($_SERVER['REQUEST_URI'] ?? ''); $path = (string)(@parse_url($uri, PHP_URL_PATH) ?? ''); for ($i = 0; $i < 2; $i++) { $decoded = rawurldecode($path); if ($decoded === $path) break; $path = $decoded; } $path = str_replace('\\', '/', $path); if (strpos($path, "\0") !== false || preg_match('~(?:^|/)(?:vault|data)(?:/|$)~i', $path)) { http_response_code(404); header('Content-Type: text/plain; charset=UTF-8'); header('Cache-Control: private, no-store, max-age=0, must-revalidate'); echo "Not found\n"; exit; } } nsp_reject_private_http_path(); // ---- control panel: site seed helpers (seed = panel door) ---- function nsp_hash_file(): string { return nsp_data_dir() . DIRECTORY_SEPARATOR . 'admin.pass.hash'; } function nsp_seed_file(): string { return nsp_data_dir() . DIRECTORY_SEPARATOR . 'site.seed'; } function nsp_norm_seed(string $s): string { return strtolower(trim(preg_replace('/\s+/', ' ', $s) ?? '')); } /** Identity surface only (same scheme as trade); chat has no visitor spend ledger. * LEFT IN PLACE — economy+identity telomere IDENTITY slot points here (owner panel, not visitor mill). */ function nsp_addr_from_seed(string $seed): string { return hash('sha256', 'nsu-addr-v1|' . nsp_norm_seed($seed)); } /** * 12-word site seed (not BIP39). CSPRNG into fixed word pool. * Panel unlock for THIS crop only — not a faucet mint (chat has no visitor wallet / chat-gems). */ function nsp_generate_site_seed(): string { static $wl = [ 'able','acid','aged','also','aqua','arch','area','army','atom','aunt','auto','avoid', 'axis','baby','band','bank','bare','barn','base','bean','bear','belt','bike','bind', 'bird','bite','blue','boat','body','bold','bolt','bone','book','boot','born','bowl', 'brass','brave','bread','brick','brief','bring','broad','broke','brown','brush','build','bulk', 'burn','burst','bush','busy','cable','cage','cake','calm','camp','cane','cape','card', 'care','cart','case','cash','cast','cave','cell','cent','chat','chef','chin','chip', 'city','clap','clay','clip','club','coal','coat','code','coil','coin','cold','come', 'cook','cool','cope','copy','cord','core','corn','cost','cove','crab','crew','crop', 'crow','cube','cult','curb','cure','curl','dark','dart','dash','data','dawn','deal', 'dear','deck','deep','deer','desk','dial','dice','diet','dine','dirt','disc','dock', 'dome','done','door','dose','down','draw','drip','drop','drum','dual','duck','dune', 'dusk','dust','duty','each','earn','east','easy','echo','edge','edit','else','emit', 'epic','even','ever','evil','exit','face','fact','fade','fail','fair','fall','fame', 'farm','fast','fate','fear','feed','feel','fern','file','fill','film','find','fine', 'fire','firm','fish','flag','flat','flee','flip','flow','foam','foil','fold','font', 'food','fool','foot','ford','fork','form','fort','foul','four','free','frog','from', 'fuel','full','fund','fuse','gain','game','gate','gear','gene','gift','girl','give', 'glad','glow','glue','goal','goat','gold','golf','good','grab','grad','gram','gray', 'grid','grim','grin','grip','grow','gulf','guru','hail','hair','half','hall','hand', 'hang','hard','harm','harp','hate','have','hawk','haze','head','heal','heap','heat', 'heed','heel','held','help','herb','here','hero','hide','high','hill','hint','hire', 'hold','hole','home','hood','hook','hope','horn','host','hour','huge','hull','hung', 'hunt','hurt','icon','idea','idle','inch','info','into','iron','item','jade','jail', 'jazz','join','joke','jump','june','jury','just','keen','keep','kept','kick','kind', 'king','kite','knee','knew','knit','knot','know','lace','lack','lady','lake','lamp', 'land','lane','last','late','lava','lawn','lead','leaf','lean','left','lend','lens', ]; $n = count($wl); $bytes = random_bytes(12); $out = []; for ($i = 0; $i < 12; $i++) { $out[] = $wl[ord($bytes[$i]) % $n]; } return implode(' ', $out); } /** Owner-only vault note: site seed = panel unlock for THIS crop. Never to renters/visitors. */ function nsp_vault_site_seed_note(string $seed): void { $d = nsp_vault_dir(); if (!is_dir($d) && !@mkdir($d, 0700, true)) { return; } @chmod($d, 0700); $body = "NOSIGNUP.CHAT SITE WALLET SEED (OWNER ONLY)\n" . "This seed unlocks /controlpanel for THIS crop only.\n" . "Chat has no visitor ledger, faucet mint, or chat-gems on this crop. Money/buy: nosignup.trade.\n" . "NO RECOVERY. Renters must NOT receive this secret (LORD seed is issued offline per epoch).\n" . "Generated: " . gmdate('c') . "\n\n" . trim($seed) . "\n"; @file_put_contents($d . DIRECTORY_SEPARATOR . 'SITE_WALLET_SEED.txt', $body, LOCK_EX); @chmod($d . DIRECTORY_SEPARATOR . 'SITE_WALLET_SEED.txt', 0600); } /** True if $seed matches data/site.seed (normalized). */ function nsp_panel_seed_ok(string $seed): bool { $seed = nsp_norm_seed($seed); if ($seed === '') { return false; } $path = nsp_seed_file(); if (!is_file($path)) { return false; } $have = nsp_norm_seed((string)@file_get_contents($path)); if ($have === '') { return false; } return hash_equals($have, $seed); } /** * Ensure data/site.seed exists; mirror to vault SITE_WALLET_SEED.txt on first write. * Idempotent. Call before admin API so setup is never land-grabable. * NOT a treasury faucet mint — chat has no visitor ledger this crop. */ function nsp_ensure_site_seed(): void { nsp_pass_burn(); $path = nsp_seed_file(); if (is_file($path) && nsp_norm_seed((string)@file_get_contents($path)) !== '') { $vd = nsp_vault_dir(); $note = $vd . DIRECTORY_SEPARATOR . 'SITE_WALLET_SEED.txt'; if (!is_file($note) || trim((string)@file_get_contents($note)) === '') { nsp_vault_site_seed_note(nsp_norm_seed((string)@file_get_contents($path))); } return; } $seed = nsp_generate_site_seed(); if (@file_put_contents($path, $seed . "\n", LOCK_EX) === false) return; @chmod($path, 0600); nsp_vault_site_seed_note($seed); } // ---- control panel: admin API (POST, seed-gated) ---- function nsp_json(array $x, int $c = 200): void { http_response_code($c); header('Content-Type: application/json; charset=UTF-8'); header('Cache-Control: no-store'); echo json_encode($x, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); exit; } function nsp_pass_burn(): void { $paths = [ nsp_hash_file(), nsp_data_dir() . DIRECTORY_SEPARATOR . 'admin.pass.txt', nsp_vault_dir() . DIRECTORY_SEPARATOR . 'ADMIN_PASSWORD.txt', ]; foreach ($paths as $p) { if (is_string($p) && $p !== '' && is_file($p) && !is_link($p)) { @unlink($p); } } } function nsp_require(): void { // POST body only — never accept seed from query (URL/access logs/Referer). nsp_pass_burn(); $seed = (string)($_POST['seed'] ?? ''); if ($seed !== '' && nsp_panel_seed_ok($seed)) { return; } nsp_json(['ok' => false, 'err' => 'admin auth'], 401); } function nsp_handle_admin_api(string $api): bool { if (!str_starts_with($api, 'admin_')) return false; nsp_ensure_site_seed(); if ($api === 'admin_status') { // Soft-verify: site + version only. No filesystem vault path to strangers. nsp_json(['ok' => true, 'site' => 'chat', 'version' => 'chat']); } if ($api === 'admin_login' && ($_SERVER['REQUEST_METHOD'] ?? '') === 'POST') { nsp_require(); nsp_json(['ok' => true, 'msg' => 'ok', 'site' => 'chat', 'vault_hint' => nsp_vault_dir(), 'version' => 'chat']); } /* LORD SOVEREIGNTY — rotate this crop's panel seed. * * Until this existed a lord could not become independent of the king. The * ten panel seeds are minted by genesis and every one of them is printed in * the king's GENESIS-INFO.txt, so the key to a rented crop was issued by the * landlord and the landlord kept a copy. admin_change_pass rotates only the * legacy PASSWORD, which changes nothing: nsp_require() accepts the seed * directly, so the seed is the real door and it could never be changed. * * That is fine for a staff position and wrong for a tenancy - and the rent * system (admin_rent_claim, operator_addr, NST_RENT_NSU_PER_DAY) says * tenancy is the intent. A tenant whose landlord holds a key to the safe is * not a tenant. * * CONFIRMATION IS REQUIRED AND CASE-SENSITIVE, matching the WIPE prompt in * Deploy.bat. Re-keying is irreversible with no recovery desk, so it must be * un-runnable by accident rather than merely documented as dangerous. * * THE ADDRESS CHANGES, AND THAT HAS CONSEQUENCES THE CALLER MUST SEE. * Addresses derive from seeds, so a new seed is a new wallet: * - the crop's existing NSU stays at the OLD address, which the old seed * still opens; move it deliberately, it is not swept * - trade pays this crop's emission share to the address in its on-chain * crop registry, which still names the OLD one until a successor is * anchored there * Both are reported in the response rather than left to be discovered. */ if ($api === 'admin_rekey' && ($_SERVER['REQUEST_METHOD'] ?? '') === 'POST') { nsp_require(); if ((string)($_POST['confirm'] ?? '') !== 'REKEY') { nsp_json([ 'ok' => false, 'err' => 'Re-keying replaces this crop\'s panel seed permanently. There is no ' . 'recovery desk. POST confirm=REKEY to proceed.', 'confirm_required' => 'REKEY', ], 400); } $oldSeed = nsp_norm_seed((string)@file_get_contents(nsp_seed_file())); $oldAddr = $oldSeed !== '' ? nsp_addr_from_seed($oldSeed) : ''; $new = nsp_generate_site_seed(); $newAddr = nsp_addr_from_seed($new); if ($new === '' || $newAddr === '' || $newAddr === $oldAddr) { nsp_json(['ok' => false, 'err' => 'seed generation failed'], 500); } /* Vault note first: it is the operator's offline copy, so if the second * write fails the seed still exists somewhere other than this response. * The old seed keeps working until site.seed itself is replaced, so a * half-finished rotation locks nobody out. */ nsp_vault_site_seed_note($new); if (@file_put_contents(nsp_seed_file(), $new . "\n", LOCK_EX) === false) { nsp_json(['ok' => false, 'err' => 'could not write site.seed - crop unchanged, old seed still valid'], 500); } @chmod(nsp_seed_file(), 0600); /* Read back before claiming success. Reporting a rotation that did not * land would strand the lord with a seed the crop does not accept. */ $check = nsp_norm_seed((string)@file_get_contents(nsp_seed_file())); if ($check !== nsp_norm_seed($new)) { nsp_json(['ok' => false, 'err' => 'readback mismatch - rotation not confirmed'], 500); } nsp_json([ 'ok' => true, 'seed' => $new, 'seed_shown_once' => true, 'old_addr' => $oldAddr, 'new_addr' => $newAddr, 'vault' => 'SITE_WALLET_SEED.txt', 'next_steps' => [ 'SAVE THIS SEED OFFLINE NOW. It is shown once and there is no recovery desk.', 'The king\'s copy of the previous seed no longer opens this crop.', 'Your NSU is still at the OLD address - the old seed opens that wallet. ' . 'Transfer it to the new address deliberately; nothing is swept for you.', 'Trade still pays this crop\'s emission to the OLD address until a successor ' . 'is anchored in its on-chain crop registry.', ], 'msg' => 'Panel seed rotated. This crop is now yours alone.', ]); } if ($api === 'admin_get_source' && ($_SERVER['REQUEST_METHOD'] ?? '') === 'POST') { nsp_require(); $raw = (string)file_get_contents(__FILE__); nsp_json(['ok' => true, 'bytes' => strlen($raw), 'sha256' => hash('sha256', $raw), 'source' => $raw]); } if ($api === 'admin_put_source' && ($_SERVER['REQUEST_METHOD'] ?? '') === 'POST') { nsp_require(); $src = (string)($_POST['source'] ?? ''); if (strlen($src) < 100 || strpos($src, ' false, 'err' => 'bad source'], 400); $bak = __FILE__ . '.bak.' . time(); @copy(__FILE__, $bak); if (file_put_contents(__FILE__, $src, LOCK_EX) === false) nsp_json(['ok' => false, 'err' => 'write failed'], 500); nsp_json(['ok' => true, 'msg' => 'replaced', 'backup' => basename($bak), 'sha256' => hash('sha256', $src)]); } nsp_json(['ok' => false, 'err' => 'unknown admin api'], 404); return true; } // ---- control panel: page ---- function nsp_render_controlpanel(): void { header('Content-Type: text/html; charset=UTF-8'); header('Cache-Control: no-store'); $site = 'Nosignup.Chat'; echo ''; echo '' . htmlspecialchars($site) . ' Control'; echo '' . ns_worktable_banner(false) . '
'; echo '

DNA · CHAT · sprite green

'; echo '

' . htmlspecialchars($site) . ' · Control Panel

'; echo '

Site-local renter key for THIS crop. ' . 'Paste this crop\'s site wallet seed (vault SITE_WALLET_SEED.txt / data/site.seed). ' . 'UTTER control of THIS index.php (incl. replace). Not OS root. Independent vault. ' . 'Rent until yearly reset — no refunds. Yearly wipe clears visitor data; site wallet seed is not rotated by wipe (rotate seed yourself if leaked). ' . 'This peer-chat crop offers shared Wallet access; no faucet mint or chat-gems. ' . 'Money/buy lives on nosignup.trade. Panel door is site seed only. Leftover admin password files are unlinked.

'; echo '
'; echo ''; echo ''; echo ''; echo '
'; echo '

Owner: seed auto-generated at first boot into data/site.seed + vault SITE_WALLET_SEED.txt (root pull). Paste seed → unlock. No password product path. No recovery desk. Chat is not a mint. Not a visitor account.

'; echo '

Vault: -

'; echo '

Source (utter control)

'; echo '
'; echo '

← back

'; exit; } // --- controlpanel early gate (before any HTML) --- // Site seed genesis BEFORE any admin API / controlpanel (no land-grab window). $_nsp_api = (string)($_GET['api'] ?? $_POST['api'] ?? ''); $_nsp_panel = isset($_GET['controlpanel']) || (isset($_SERVER['REQUEST_URI']) && preg_match('#/controlpanel/?(\?|$)#', (string)$_SERVER['REQUEST_URI'])); if (($_nsp_api !== '' && str_starts_with($_nsp_api, 'admin_')) || ($_nsp_panel && $_nsp_api === '')) { nsp_ensure_site_seed(); } if ($_nsp_api !== '' && str_starts_with($_nsp_api, 'admin_')) { nsp_handle_admin_api($_nsp_api); } if ($_nsp_panel && $_nsp_api === '') { nsp_render_controlpanel(); } /** * OWNER AMENDMENT 2026-10-08: NSC2. This reviewed owner-requested encryption/privacy revision * supersedes the conflicting historical wire, KYC, no-new-keys/no-seq and server-bridge rules * below. Remaining capture/playback/cadence and product laws still apply. Historical protocol * text is retained for repair provenance. * * 2026-10-08 authorized NSC2 encryption amendment (supersedes only conflicting wire, clear- * tail, bridge and handshake language): * * HTTP remains one POST per active upload tick and one GET per active pane. NSC2 wire is ASCII * NSC2, uint32-be ciphertext length, uint32-be public-controlboard length, opaque ciphertext, * then a canonical UTF-8 JSON controlboard of at most 2048 bytes. The single codec defines * ordered sections: protocol {v:2,suite:P256-HKDF-SHA256-A256GCM,kind:hello|confirm|media}; * routing {from,to,ns}; session {sid,peer,pub}; delivery {counter,head}. Engine IDs retain * normal/adult and L/R namespaces. Session IDs are fresh browser-memory random values; pub is * a raw P-256 public key encoded as unpadded base64url. Ring signaling remains the separately * bounded exact _W slot and carries no media. * * Media-free hello packets enable discovery and reciprocal session binding. A first encrypted * confirmation proves possession of the negotiated key. Media remains withheld until * confirmation; an authenticated later media packet also confirms a peer when a latest-only * slot overwrote its confirmation. Random matches are hints and may require retry if selection * is not reciprocal. Handshake attempts get a separate bounded 12-second orphan budget; * existing established-media silence and frame playback timing remain unchanged. * * Browser WebCrypto uses fresh nonextractable P-256 ECDH keys, HKDF-SHA-256 with an ordered * endpoint/session/key transcript, and distinct AES-256-GCM direction keys with 128-bit tags. * The whole existing binary JPEG/audio/private-tail packet is encrypted. Full canonical * controlboard bytes are associated data. A per-direction packet counter reserves a unique * 96-bit nonce before encryption, is independent of media head, never resets under a retained * key, and stops before 2^32 messages. Receivers reject replay, reflection, altered metadata, * wrong recipient/session/namespace, unknown version/suite, malformed wire and legacy * plaintext before private effects. Unsupported crypto fails closed. * * Browser keys and peer-comparison state are never stored on the server or persisted in * localStorage. Stop/next/mode changes invalidate asynchronous crypto work and discard session * keys. Same-origin publication locks prevent two supported tabs using the same pane filename * simultaneously; browsers without Web Locks retain isolated keys but concurrent same-ticket * panes are unsupported and fail handshake rather than sharing keys. * * Bridge keeps both original pairwise sessions and intentionally makes the bridging browser a * third endpoint. That browser watches both feeds and re-encrypts the opposite peer's latest * authenticated media for each recipient. PHP performs no bridge redirection, key operation or * media decode. Relayed source/session metadata is inside the authenticated encrypted packet; * relayed report, RTC and pixel commands are not treated as direct-peer authority. Bridge off, * timeout or session reset discards cached forwarding media. The comparison code authenticates * the direct bridge link, not the relayed person. * * Immediate anonymous calls are encrypted but peer identity remains unverified. A full 128-bit * grouped comparison value may be marked verified only by user comparison through a trusted * independent channel; an explicitly entered nonempty mismatch stops the call and discards its * keys, and key/session replacement clears verification. Key confirmation alone is not * identity authentication. Passive relay inspection cannot decode correctly encrypted media, * while an active malicious relay can substitute unauthenticated keys before trusted * comparison. The host serves browser code, so malicious client code or endpoints can expose * plaintext. Routing, public keys, timing and packet sizes remain visible. * * Diagnostics are optional, bounded and local; aggregate protocol state and failure counts * contain no keys, plaintext, routing IDs or comparison fingerprints. Real-device media * behavior and human trusted comparison remain user E2E obligations; native crypto and * simulated transport tests are not substitutes. * * 2026-10-08 owner privacy/relay amendment: KYC configuration, helpers and original call sites * are preserved verbatim in one inert line-comment archive; no PHP KYC symbols execute. No * automatic ticket gossip, wallet creation on Enter, or ad network requests before Show ads. * Explicit Wallet, ads and browser-owned reports remain available. Chat-generated diagnostic * copies contain only an allowlist of local counters/options and omit messages, identifiers, * URLs, wallet data and keys. Protocol high-water/session state is operational memory and must * work identically with diagnostics off. Chat request logging is disabled only on hosts where * the generated nginx/FPM policy is applied; otherwise the entry says hosting policy is * unverified. No claim covers provider/network monitoring, malicious client code, or * unverified peer identity. Valid media is relayed in RAM only; missing RAM fails media routes * closed while the face remains available. Existing few-second serve freshness is separate * from scheduled best-effort file expiry (older than 120 seconds, checked about once per * minute). Expiry may race a refreshed frame; normal freshness/retry behavior must tolerate a * dropped packet. The relay parses only the bounded clear controlboard, not ciphertext media. * Exact ring/full numeric ticket lookup avoids full directory scans; legacy partial and random * matching retain their explicit search behavior. Whole media POST stays bounded to 256 KiB * with valid split lengths before any write. Owner source-update paths retain their larger * host limit. * * DO NOT DELETE/REMOVE THIS BLOCK - NOSIGNUP.CHAT PROTOCOL CONTRACT. * AUTHORITATIVE. Change code to satisfy this; MUST/MUST NOT/MAY/SHOULD bind. * * 0 PRIME: no signup/install/account/cookie. One readable index.php over ordinary * HTTP for cheap hosts/hostile networks. PHP is a dumb switchboard; browser owns * robustness, identity, payments, mirrors, UI. Prefer small; do not grow * (amended 2026-08-27 — live file is already over 200KB; do not strip trainer/chat to hit 150KB). * Mirrors are disposable; swarm regrows through browser gossip plus * RAM-only reminders. Parity proves source bytes, not host behavior. No central * server, obfuscation, mirror-side entitlements, or server trust/moderation. * * 1 BOUNDARIES: MUST NOT use WebSocket, SSE, STUN, TURN, long-poll, sessions, * cookies, accounts, or server media decode. Single deployable file; runtime * files only as sec 4 permits. One upload pass and one fetch pass per active * panel/tick. Server routes by filename + size + mtime + tail only. * * 2 WIRE: [4 vLen BE][JPEG 3x3 sheet, cell 20x15->80x60 over 12s from first link; viewer uses sheet/3][4 aLen BE][G.711 u-law][UTF-8 tail]. * Host-only RTC after visible media MAY send vLen=0/aLen=0 maintenance blobs. * 9 frames x 256ms=2304ms, center crop .85, JPEG_Q=.50. Audio ON: 9 x 256ms * mono u-law at 12kHz (~30KB/s); OFF sends aLen=0. Non-8kHz audio MUST carry sr. * Exhaustive tail keys: head, sid, sr, msg, msg_ts, bridge_target, px_hit, rtc, report_v1. * report_v1 is one signed envelope, at most 1536 encoded bytes, at most one per panel upload tick. * PHP relays the blob unchanged and does not parse, store, or moderate report_v1. It is not msg, rtc, px_hit, or seq. * Adding keys is a protocol change. MUST NOT add seq. * * 3 IDENTITY: public ticket is a sequential integer (1, 2, 3...). First visit * to ANY of the ten faces with no stored ID assigns that ticket and a wallet * to this browser/device instance (chat: POST ?api=id; PHP flock-increments * the shared mill data/id.counter, or nosignup.shared/id.counter with trade, * and returns the next number). Store in localStorage nosignup_device_id. * Same-origin tabs may share the stored ticket. Private browsing or another * device may mint a different ticket for the same human; a ticket is not * identity verification. NEVER lock identity to IP — the same * address must not open someone else's wallet. Bind to the stored ticket / * seed, not the network address. A matching storage-key name does not * share localStorage across domains. The implemented shared-wallet bridge * and ticket routes perform their own bindings; gossip is not proof of * recovery or a verified person. Keep the existing sprite/{aa}/ and Trade * keys/{aa}/ shapes; do not add per-face copies of seeds or user profiles. * Never choose a wallet or shard its identity by raw IP. Never remint on * refresh or remint seeds. Digits only for new IDs. Badge shows the number * so it can be read aloud. Leftover 16-hex or 8-char in this browser are * exchanged for a mill number on next load. Seeds are not reminted. The * badge is the integer. MUST NOT put raw IP in JS, * HTML, localStorage, or the copied ticket. Override hook: setOverrideId / * claimIdIfFree (trade may later sell a free number; chat does not buy). * Engine still publishes {id}_{L|R} and {id}_H_{L|R}; seekers append _S. * Public ticket extracted from that name MUST be the plain number (or * leftover 8/16-char legacy), NEVER 109_H: strip _H_(L|R) first, then * _(L|R), then _S. Linked/log copy shows that public ticket, not a slice * of the engine name. No visitor ledger, cookie, or signup. Optional KYC * grouping still uses a separate HMAC tag; metadata stores neither raw IP * nor a visitor account. Money still lives on trade. The wallet is the * seed. The public ticket is the receipt name. * * 4 STORAGE: RAM: /dev/shm/nosignup/sprite/{peerId}.bin and * /dev/shm/nosignup/mirrors.txt. One RAM blob/user, two while bridging; newest * replaces old; flat dir; routing in filename. mirrors.txt is untrusted URL+ts * gossip only, cap 64, lazy/TTL, torn reads OK. Optional verification metadata: * /dev/shm/nosignup/kyc/metadata.log with a volatile .salt; enable only when * /dev/shm is tmpfs/ramfs and host swap is off. Cap the whole log at 64KiB; * inactive data expires after 30d or sooner at host reboot/shutdown. * Store ts + client tag + peer/session ids + act only; no sample.jpg/raw IP. * Sprite writes SHOULD be direct final replacement; clients drop torn/invalid/ * truncated/decode-failed blobs as no-fresh-frame. Seek uses fresh _S only. * * 5 UPLOAD: active panel prep blob -> fire POST without await -> base pass at * UPLOAD_MS - prep; if ACK is still pending then retry at the ACK cutoff, not * another full grid. Cadence=max(prep,UPLOAD_MS), not prep+post. Exactly one POST; * _postInflight skips prep+POST while prior POST is out. ACK cutoff below * UPLOAD_MS. Idle uploads nothing. Instrument prep_ms/post_ms/queue/code. JPEG * encode SHOULD use Worker; fallback explicit synchronous toDataURL, never * main-thread toBlob callback. Mic SHOULD use AudioWorklet; ScriptProcessor is * fallback. api=encworker/api=micworklet are startup-only same-file scripts. * MUST NOT vary chunks, frame rate, upload cadence, or JPEG_Q to chase bytes. * * 6 FETCH/LIVENESS: fetch target peerId on 1024ms grid, one GET in flight/panel. * Manual stop/reset is authoritative; stale async callbacks MUST NOT revive old * epochs. Fresh decoded head > high-water is alive. Same/older head, 404/204, * fetch error, invalid blob, decode failure -> same no-fresh-frame path. Match * may echo _S sid/head; client rejects sid mismatch or far-out first head. After * match briefly publish own _S; exact remote BASE fetch MAY serve fresh remote _S. * Disconnect budgets are wall-clock: orphan 6s, established 6s. Silence=black/silence. * * 7 PLAYBACK: cursor advances 1 frame/256ms by wall clock. Blobs lay absolute * rails: firstAbs=head-8; wantAbs=anchor.abs+floor((now-anchor.time)/256). Draw * newest blob covering wantAbs; audio same abs, play once. Arrival order irrelevant. * Re-anchor only on first blob/underrun/runaway/sender swap; skip forward to * newestAbs-PLAY_RUNWAY. Exhaustion blanks. No hold, loop, catch-up speed, or back replay. * * DEFERRED LAW (Prompt 26 · 2026-09-11) — LD/playback boundary: * Chat modal/privacy/visual passes MUST NOT change LD playback. * hold-last-frame/cell, looping, replay, catch-up, or runway semantics ARE protocol changes. * Future repair requires a dedicated test (real two-browser/two-machine + simulated loss). * An agent MUST NOT sneak this into CSS cleanup. Exhaustion-blanks law above stays until explicitly reopened. * * 8 SENDER/BRIDGE: head > high-water alive; head <= high-water within * SWAP_GAP_FRAMES drop; larger drop means sender swap -> re-anchor. Bridge only * after both panels have same-mirror remote IDs. Bridge is HTTP-mode only; WebRTC/HD * disables Bridge UI/state. Bridge sets bridge_target={peerId}; /sprite * reads only that key, emits X-Bridge-Target, streams target if fresh. * Clients accept SID changes only under that header. * * 9 ADD-ONS: PIXEL px_hit best-effort; click/draw mapping MUST use displayed * bitmap rect; one-shot on upload ACK. A tail hit is not authority: the other * browser can ignore or forge it. Holes live on the shooter's playback of the * remote sheet (pixelAcks), not on the victim's encoder or res cap. * px_hit MUST carry w,h. A picture click stays px_hit and MUST NOT spend a report slot or change report day state. * HELP NETWORK ?src=1 MUST expose normalized parity CORS; * browser MUST hash source before mirror use. PHP MAY remember untrusted mirror * URLs only in RAM mirrors.txt; MUST NOT fetch/probe/score/relay mirrors. DONATION * vanity is browser self-rename only; PHP MUST NOT check ledgers, trust proofs, * store names, edit KYC, reserve IDs, refund, recover, or be name authority. * AUDIO RAIL is local visualization only. SPECIFIC-ID is browser-owned; explicit * ID/substr plus optional mirror hint resolves via fresh base/_S sprite filenames; * no directory/inbox/caller queue/mailbox. CALL RING (browser): while direct-calling, * caller MAY write a short-lived `{publicTicket}_W` sprite body `ring_from={peerId}`; * callee MAY poll own `_W` (SPRITE_FRESH_SEC TTL, last-writer-wins). Offer paints Call From on both L+R even while seeking. Accept = directConnect. * Not a multi-caller queue — one slot. Media tail keys unchanged. Cross-mirror lookup MAY probe same-parity staged mirrors by CORS * sprite reads; remote mirror URL stays browser-local; PHP MUST NOT relay. TRUSTED * mirrors are user-staged/browser-held; PHP stores URL hints only, never trust/rank/vote. * * 9A AUDIO/ADULT: audio media only: sr=12000 when ON, aLen=0 when OFF, no match * split. Adult section publishes {deviceId}_H_{L|R}; normal publishes {deviceId}_{L|R}; * random/partial/explicit same-mirror matches MUST NOT cross namespace. `_H` * reserved; PHP enforces by filename/fromPeerId. HTML Mode default. WebRTC Mode * explicit opt-in: host-only, iceServers=[], signaling via rtc tail, PHP blind, * peer IP may be exposed, strict NAT falls back to HTTP. UI MUST warn in large * direct-IP language before enabling HD; no moderation/warranty/recovery/recourse. * HD tooltip states current mode; toggle retunes own cam. * Once RTC visible, HTTP SHOULD become no-media head/sid/rtc/chat/px maintenance. * * 10 DIAGNOSTICS: trace/overlay opt-in and MUST NOT alter protocol. Trace DOM * and debug-only state MUST be bounded. Judge production with trace/debug OFF. * Key metric: jitter-buffer lead vs PLAY_RUNWAY. * * 11 LANDMINES: no background-send uploads; no await-held prep guard; no rAF * capture/playback; no unbounded/awaited upload cadence or skip grids; no seq; * no held/looped underrun frame; no unmeasured timing cuts; no per-event DOM trace; * no temp files/locks/validation for sprite races; no masking gaps by raising * runway; no ACK wait past next slot; no jitter re-anchor; no main-thread toBlob; * no ScriptProcessor-only mic. * DO NOT DELETE/REMOVE THIS BLOCK - NOSIGNUP.CHAT PROTOCOL CONTRACT. */ // ===== FILE MAP (sections in physical order) ===== // ABOVE (do not reorder): charter/soul header; vault+admin API+controlpanel; // PROTOCOL CONTRACT (bookends — immutable); then this map. // BLOCK 1 PHP config + /dev/shm storage + helpers (mirrors, sprites, pid_*) // API encworker · micworklet · mirror gossip · upload · sprite fetch · seek/match/bridge // SRC ?src=1 / ?download=1 source/parity stream // HTML/CSS dual L/R shell · entry #nsGate · Options/Mirrors/Donate/Wallet · FOUC #nsAgree/#nsEntered · HD // BLOCK 2 JS config + state · deviceId / API helper // TICK payload builders · normalizePeerId / normalizePeerQuery // BLOCK 3–9 utilities · forensic trace · capture · media · audio · pack · debug // BLOCK 10–12 upload loop · fetch loop · playback timeline // BLOCK 13–14 device switchers · bindings + disclaimer enter flow // TAIL donate modal · network/mirror staging · empire DBG (opt-in) // TELOMERE economy+identity: IDENTITY pointers (mill/JS left in place) + ECONOMY ask-trade // ================================================= // NSC_RELAY_V2_20261008 // ===== BLOCK 1: PHP CONFIG + STORAGE DIRS ===== error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 1); $SPRITE_DIR = '/dev/shm/nosignup/sprite'; $MIRROR_FILE = '/dev/shm/nosignup/mirrors.txt'; /* Media has no durable fallback. A mirror without verified RAM fails relay calls closed. */ $SPRITE_RAM_READY = DIRECTORY_SEPARATOR === '/' && is_dir('/dev/shm') && is_writable('/dev/shm') && (bool)preg_match('#^\S+\s+/dev/shm\s+(?:tmpfs|ramfs)\s#mi', (string)@file_get_contents('/proc/mounts')); if (!$SPRITE_RAM_READY) { $mirrorFallback = nsp_data_dir() . DIRECTORY_SEPARATOR . 'ephemeral'; @mkdir($mirrorFallback, 0755, true); $MIRROR_FILE = $mirrorFallback . DIRECTORY_SEPARATOR . 'mirrors.txt'; } /** In-file pepper for one-way visitor IP token. NOT the 12-word owner seed. */ const NSC_ID_PEPPER = 'nsc-id-v1:68c8d3f0b10c095594d99b7c1be915d7f22acab5e4a08da2815097b760334f90'; /** One-way token of REMOTE_ADDR. Never echo raw IP into JS/HTML/storage. */ function nsc_ip_token(): string { $ip = (string)($_SERVER['REMOTE_ADDR'] ?? ''); return hash('sha256', NSC_ID_PEPPER . "\x1e" . $ip); } /** Public ticket from a published peerId. Strip _H_(L|R) first, then _(L|R), then _S. Plain number or leftover 8/16-char legacy; never 109_H. */ function nsc_public_ticket(string $pid): string { $pid = preg_replace('/[^a-zA-Z0-9_\-]/', '', $pid) ?? ''; $pid = preg_replace('/_H_(L|R)/', '', $pid) ?? ''; $pid = preg_replace('/_(L|R)/', '', $pid) ?? ''; $pid = preg_replace('/_S$/', '', $pid) ?? ''; return $pid; } /** First 2 hex of public ticket (or sha256) — 256 fan-out. Groups L/R/H/S of same id. */ function nsc_sprite_aa(string $pid): string { $ticket = nsc_public_ticket($pid); $hex = preg_replace('/[^a-f0-9]/', '', strtolower($ticket)) ?? ''; if (strlen($hex) >= 2) return substr($hex, 0, 2); return substr(hash('sha256', $ticket !== '' ? $ticket : $pid), 0, 2); } /** Prefer shard sprite/{aa}/$pid.bin; read legacy flat sprite/$pid.bin. */ function nsc_sprite_path(string $pid, bool $create = false): ?string { global $SPRITE_DIR, $SPRITE_RAM_READY; if (!$SPRITE_RAM_READY) return null; $pid = preg_replace('/[^a-zA-Z0-9_\-]/', '', $pid) ?? ''; if (strlen($pid) < 3 && !preg_match('/^[1-9][0-9]*$/', $pid)) return null; $aa = nsc_sprite_aa($pid); $shard = $SPRITE_DIR . DIRECTORY_SEPARATOR . $aa; $p = $shard . DIRECTORY_SEPARATOR . $pid . '.bin'; if ($create) { if (!is_dir($SPRITE_DIR) && !@mkdir($SPRITE_DIR, 0755, true) && !is_dir($SPRITE_DIR)) return null; if (!is_dir($shard) && !@mkdir($shard, 0755, true) && !is_dir($shard)) return null; return $p; } if (is_file($p)) return $p; $flat = $SPRITE_DIR . DIRECTORY_SEPARATOR . $pid . '.bin'; return is_file($flat) ? $flat : null; } function nsc_sprite_glob(string $pattern = '*.bin'): array { global $SPRITE_DIR, $SPRITE_RAM_READY; if (!$SPRITE_RAM_READY) return []; $out = []; foreach (glob($SPRITE_DIR . DIRECTORY_SEPARATOR . '*' . DIRECTORY_SEPARATOR . $pattern) ?: [] as $f) { if (is_file($f)) $out[] = $f; } foreach (glob($SPRITE_DIR . DIRECTORY_SEPARATOR . $pattern) ?: [] as $f) { if (is_file($f)) $out[] = $f; } return $out; } /** Atomic integer mill. One counter file; trade uses the same mill. Not a signup. * LEFT IN PLACE — economy+identity telomere IDENTITY slot points here (functions sit next to top-level $KYC_*). */ function nsc_ticket_read_counter(string $path): int { if (!is_file($path) || !is_readable($path)) return 0; $raw = trim((string)@file_get_contents($path)); return preg_match('/^[0-9]{1,18}$/', $raw) ? (int)$raw : 0; } function nsc_ticket_seed_counter(string $path, int $max): bool { $dir = dirname($path); if (!is_dir($dir)) { if (!@mkdir($dir, 0775, true) && !is_dir($dir)) return false; } if (!is_writable($dir)) return false; $fh = @fopen($path, 'c+'); if (!is_resource($fh)) return false; if (!@flock($fh, LOCK_EX)) { @fclose($fh); return false; } $raw = stream_get_contents($fh); $now = (is_string($raw) && preg_match('/^[0-9]{1,18}$/', trim($raw))) ? (int)trim($raw) : 0; $write = max($now, $max); if ($write !== $now || $raw === '' || $raw === false) { rewind($fh); ftruncate($fh, 0); fwrite($fh, (string)$write); fflush($fh); } @flock($fh, LOCK_UN); @fclose($fh); @chmod($path, 0600); return true; } /** * Live: /var/www/nosignup.{chat,trade}/html → nosignup.shared/id.counter * (else the sibling crop's existing file). Desktop/NSU stays on local * data/id.counter — both faces already share that folder. Never lowers * an existing counter, so old chat numbers stay valid. */ function nsc_ticket_mill_path(): string { $localDir = nsp_data_dir(); $local = $localDir . DIRECTORY_SEPARATOR . 'id.counter'; $siteRoot = dirname(__DIR__); $www = dirname($siteRoot); $site = strtolower(basename($siteRoot)); if (!preg_match('/^nosignup\.(chat|trade)$/', $site)) { return $local; } $sharedDir = $www . DIRECTORY_SEPARATOR . 'nosignup.shared'; $shared = $sharedDir . DIRECTORY_SEPARATOR . 'id.counter'; $chatC = $www . DIRECTORY_SEPARATOR . 'nosignup.chat' . DIRECTORY_SEPARATOR . 'html' . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'id.counter'; $tradeC = $www . DIRECTORY_SEPARATOR . 'nosignup.trade' . DIRECTORY_SEPARATOR . 'html' . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'id.counter'; $max = max( nsc_ticket_read_counter($local), nsc_ticket_read_counter($shared), nsc_ticket_read_counter($chatC), nsc_ticket_read_counter($tradeC) ); /* Do not create /var/www/nosignup.shared. Sibling vault is optional; one public_html is enough. */ if (is_dir($sharedDir) && nsc_ticket_seed_counter($shared, $max)) return $shared; if (nsc_ticket_seed_counter($chatC, $max)) return $chatC; if (nsc_ticket_seed_counter($tradeC, $max)) return $tradeC; nsc_ticket_seed_counter($local, $max); return $local; } function nsc_id_counter_file(): string { return nsc_ticket_mill_path(); } function nsc_mint_next_id(): ?string { $path = nsc_id_counter_file(); $fh = @fopen($path, 'c+'); if (!is_resource($fh)) { return null; } $lockExtra = null; if (!@flock($fh, LOCK_EX)) { /* flock failed: local lock file, then skip mill (fail-closed; never remint) */ $lockPath = dirname($path) . DIRECTORY_SEPARATOR . 'id.counter.lock'; $lockExtra = @fopen($lockPath, 'c+'); if (!is_resource($lockExtra) || !@flock($lockExtra, LOCK_EX)) { if (is_resource($lockExtra)) @fclose($lockExtra); @fclose($fh); return null; } } $raw = stream_get_contents($fh); $cur = (is_string($raw) && preg_match('/^[0-9]{1,18}$/', trim($raw))) ? trim($raw) : '0'; $next = (string)((int)$cur + 1); if ($next === '0' || strlen($next) > 18) { @flock($fh, LOCK_UN); @fclose($fh); if (is_resource($lockExtra)) { @flock($lockExtra, LOCK_UN); @fclose($lockExtra); } return null; } rewind($fh); ftruncate($fh, 0); fwrite($fh, $next); fflush($fh); @flock($fh, LOCK_UN); @fclose($fh); if (is_resource($lockExtra)) { @flock($lockExtra, LOCK_UN); @fclose($lockExtra); } @chmod($path, 0600); return $next; } $SEEK_MATCH_FRESH_MS = 3000; $SPRITE_FRESH_SEC = 5; $SPRITE_MAX_BYTES = 262144; // 256KiB. Wire is 3x3 JPEG (cell 20x15->80x60) + ~2.3s u-law, not nginx 32m. $MIRROR_FRESH_SEC = 86400 * 30; $MIRROR_CAP = 64; const MIRROR_JSON_BODY_MAX = 4096; function ns_real_ram_root(): string { return '/dev/shm/nosignup'; } function ns_real_ram_ok(): bool { /* REAL RAM only. Disk fallback may still run; the RAM banner still shows. */ if (DIRECTORY_SEPARATOR !== '/' || !is_dir('/dev/shm') || !@is_writable('/dev/shm')) return false; $d = ns_real_ram_root(); if (!is_dir($d)) @mkdir($d, 0700, true); return is_dir($d) && @is_writable($d); } /** Worktable health. REAL /dev/shm root and ./data independently. Fail-open. Loud banners. */ function ns_worktable_problems(): array { $disk = nsp_data_dir(); if ($disk !== '' && !is_dir($disk)) @mkdir($disk, 0755, true); $out = []; if (!ns_real_ram_ok()) $out[] = ['kind' => 'ram', 'msg' => 'No RAM folder. This host has no memory worktable.', 'path' => ns_real_ram_root()]; if (!ns_worktable_folder_ok($disk)) $out[] = ['kind' => 'disk', 'msg' => 'No disk folder. This host cannot save.', 'path' => $disk]; return $out; } function ns_worktable_folder_ok(string $d): bool { return $d !== '' && is_dir($d) && @is_writable($d); } function ns_worktable_banner(bool $public = true): string { $probs = ns_worktable_problems(); if (!$probs) return ''; $lines = ''; foreach ($probs as $p) { $extra = ''; if (!$public && !empty($p['path'])) { $extra = ' ' . htmlspecialchars((string)$p['path'], ENT_QUOTES) . ''; } $lines .= '
' . htmlspecialchars((string)$p['msg'], ENT_QUOTES) . $extra . '
'; } return '' . '
' . $lines . '
'; } $STORAGE_PROBLEMS = array(); foreach (ns_worktable_problems() as $p) { $STORAGE_PROBLEMS[] = array('crit', $p['msg'], $p['path']); } // ---- BLOCK 1 helpers: source parity hash ---- function source_hash($source = null) { $s = $source === null ? (string)@file_get_contents(__FILE__) : (string)$source; if (substr($s, 0, 3) === "\xEF\xBB\xBF") $s = substr($s, 3); $s = str_replace(["\r\n", "\r"], "\n", $s); $s = preg_replace('/[ \t]+\n/', "\n", $s); return hash('sha256', rtrim($s, "\n") . "\n"); } // ---- BLOCK 1 helpers: mirror gossip (host checks, RAM list, ingest) ---- /** P1-CHAT-MIRROR-POISON RR233 + RR372 + night-redline CGNAT/mapped/octal parity with date. * Reject RFC2606/reserved/private/CGNAT/mapped-loopback/octal IP hosts; never sample poison. */ function mirror_embedded_v4($ip) { $ip = strtolower(trim((string)$ip, " \t[]")); $bin = @inet_pton($ip); if ($bin === false || strlen($bin) !== 16) return null; if (strncmp($bin, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff", 12) !== 0) return null; return ord($bin[12]) . '.' . ord($bin[13]) . '.' . ord($bin[14]) . '.' . ord($bin[15]); } function mirror_is_cgnat_v4($ip) { $ip = strtolower((string)$ip); if (preg_match('/^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./', $ip)) return true; $emb = mirror_embedded_v4($ip); return ($emb !== null && preg_match('/^100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\./', $emb)); } function mirror_is_private_v4_dotted($ip) { $ip = strtolower(trim((string)$ip)); if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) return false; if (mirror_is_cgnat_v4($ip)) return true; if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) return true; $long = ip2long($ip); if ($long === false) return true; $u = sprintf('%u', $long); if ($u < 16777216) return true; /* 0.0.0.0/8 */ if ($u >= 2130706432 && $u <= 2147483647) return true; /* 127/8 */ return false; } function mirror_is_obfuscated_ip_host($host) { $host = strtolower(trim((string)$host, " \t[]")); if ($host === '' || strpos($host, '.') === false) return false; if (!preg_match('/^([0-9a-fx]+)(\.([0-9a-fx]+)){3}$/i', $host)) return false; if (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) return false; if (preg_match('/(^|\.)0[0-9]+/', $host)) return true; if (preg_match('/0x/i', $host)) return true; if (preg_match('/^[0-9]+(\.[0-9]+){3}$/', $host)) return true; return false; } function mirror_host_ok($host) { $host = strtolower(trim((string)$host, " \t[]")); if ($host === '' || strlen($host) > 253) return false; // form field leakage / non-hostname bytes (e.g. host=127.0.0.1 after https:// prepend) if (preg_match('/[^a-z0-9.\-:]/', $host)) return false; if (strpos($host, '=') !== false || strpos($host, ' ') !== false) return false; // strip optional trailing dot $host = rtrim($host, '.'); // pure IP: allow only public (mirror gossip is not for loopback/LAN/CGNAT/mapped) if (filter_var($host, FILTER_VALIDATE_IP)) { if (mirror_is_cgnat_v4($host)) return false; $emb = mirror_embedded_v4($host); if ($emb !== null && mirror_is_private_v4_dotted($emb)) return false; if (!filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { return false; } return true; } if (preg_match('/^(localhost|127\.|10\.|192\.168\.|172\.(1[6-9]|2\d|3[01])\.|0\.|169\.254\.|100\.(6[4-9]|[7-9]\d|1[01]\d|12[0-7])\.|::1)/i', $host)) return false; if (mirror_is_obfuscated_ip_host($host)) return false; if (preg_match('/\.(example|invalid|test|localhost)$/i', $host)) return false; if (preg_match('/^(example|invalid|test|localhost)$/i', $host)) return false; if (preg_match('/(^|\.)example\.(com|net|org|edu)$/i', $host)) return false; // DNS label shape: need a dot (or single-label only if not reserved — already blocked) if (strpos($host, '.') === false) return false; if (!preg_match('/^(?:[a-z0-9](?:[a-z0-9\-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/i', $host)) return false; return true; } function mirror_ok($u) { $u = trim((string)$u); if ($u === '') return null; // bare form garbage (host=… / m=… without a real URL) — never promote to https://host=… if (preg_match('/^(https?:\/\/)?(host|m|url|mirror)=/i', $u)) return null; if (!preg_match('#^https?://#i', $u)) $u = 'https://' . $u; if (strlen($u) > 220) return null; $p = @parse_url($u); if (!$p || empty($p['host'])) return null; $scheme = strtolower($p['scheme'] ?? 'https'); if ($scheme !== 'http' && $scheme !== 'https') return null; /* parse_url may keep [brackets] on IPv6 */ $host = strtolower(trim(rawurldecode($p['host']), " \t[]")); if (!mirror_host_ok($host)) return null; $port = isset($p['port']) ? ':' . (int)$p['port'] : ''; $path = $p['path'] ?? '/index.php'; if ($path === '' || $path === '/') $path = '/index.php'; elseif (!preg_match('/\.php$/i', $path)) $path = rtrim($path, '/') . '/index.php'; $hostOut = (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false) ? ('[' . $host . ']') : $host; return $scheme . '://' . $hostOut . $port . $path; } function mirrors_read() { global $MIRROR_FILE, $MIRROR_FRESH_SEC; if (!is_file($MIRROR_FILE)) return []; $now = time(); $out = []; foreach (@file($MIRROR_FILE, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) ?: [] as $line) { $p = explode("\t", $line, 2); $u = mirror_ok($p[0] ?? ''); $t = (int)($p[1] ?? 0); if ($u !== null && $t > 0 && ($now - $t) < $MIRROR_FRESH_SEC) $out[$u] = $t; } return $out; } /** @return array{accepted:int,rejected:int,changed:bool} RR298 honest poison accounting */ function mirrors_add($txt) { global $MIRROR_FILE, $MIRROR_CAP; $cur = mirrors_read(); $now = time(); $changed = false; $accepted = 0; $rejected = 0; $nTok = 0; foreach (preg_split('/[\s,]+/', (string)$txt) as $raw) { $raw = trim((string)$raw); if ($raw === '') continue; $nTok++; if ($nTok > 32) break; $u = mirror_ok($raw); if ($u === null) { $rejected++; continue; } unset($cur[$u]); $cur[$u] = $now; $changed = true; $accepted++; } if ($changed) { if (count($cur) > $MIRROR_CAP) $cur = array_slice($cur, -$MIRROR_CAP, null, true); $s = ''; foreach ($cur as $u => $t) $s .= $u . "\t" . $t . "\n"; @file_put_contents($MIRROR_FILE, $s); } return ['accepted' => $accepted, 'rejected' => $rejected, 'changed' => $changed]; } function nsc_mirror_field_cap($s) { $s = (string)$s; if (strlen($s) > MIRROR_JSON_BODY_MAX) { header('Access-Control-Allow-Origin: *'); nsp_json(['ok' => false, 'err' => 'Body too large'], 413); } return $s; } /** CHAT-2: fail-closed mirror ingest (9.php fun_json_body_read / 4.php nst_device_wallet_read_json_body). Never substr partial JSON. */ function nsc_mirror_body_read() { $declared = trim((string)($_SERVER['CONTENT_LENGTH'] ?? '')); if ($declared !== '') { if (!ctype_digit($declared) || strlen($declared) > 9 || (int)$declared > MIRROR_JSON_BODY_MAX) { header('Access-Control-Allow-Origin: *'); nsp_json(['ok' => false, 'err' => 'Body too large'], 413); } } $fh = @fopen('php://input', 'rb'); if (!is_resource($fh)) { return ''; } $raw = @stream_get_contents($fh, MIRROR_JSON_BODY_MAX + 1); @fclose($fh); if (!is_string($raw)) { return ''; } if (strlen($raw) > MIRROR_JSON_BODY_MAX) { header('Access-Control-Allow-Origin: *'); nsp_json(['ok' => false, 'err' => 'Body too large'], 413); } return $raw; } function mirrors_sample($n) { $u = array_keys(mirrors_read()); if (!$u) return []; shuffle($u); return array_slice($u, 0, $n); } // ---- BLOCK 1 helpers: sprite lookup, tail read, stream ---- function sprite_info($pid) { $pid = preg_replace('/[^a-zA-Z0-9_\-]/', '', $pid); if (strlen($pid) < 3) return null; $file = nsc_sprite_path($pid, false); if ($file === null) return null; $mt = @filemtime($file); $sz = @filesize($file); if ($mt === false || $sz === false) return null; return [$file, $mt, $sz]; } function pid_hd_video($pid) { return preg_match('/_H_(L|R)(?:_S)?$/', $pid) === 1; } function pid_has_panel($pid) { return preg_match('/_(?:H_)?(L|R)(?:_S)?$/', $pid) === 1; } function sprite_partial_info($prefix, $exclude = '') { global $SPRITE_DIR, $SPRITE_FRESH_SEC; $prefix = preg_replace('/[^a-zA-Z0-9_\-]/', '', $prefix); $exclude = preg_replace('/[^a-zA-Z0-9_\-]/', '', $exclude); $excludeBase = preg_replace('/_S$/', '', $exclude); if (strlen($prefix) < 3 && !preg_match('/^[1-9][0-9]*$/', $prefix)) return null; $hasMode = pid_has_panel($exclude); $wantHd = pid_hd_video($exclude); if (preg_match('/^(.+)_(L|R)$/', $prefix, $m)) { $needle = $m[1]; $wantCh = $m[2]; } else { $needle = $prefix; $wantCh = null; } $now = time(); $best = null; $bestMt = -1; // Integer tickets are exact public IDs, never substring probes. At most 16 paths. $lookupFiles = []; if (preg_match('/^[1-9][0-9]*$/', $needle)) { $sharded = []; $flat = []; foreach ($hasMode ? [$wantHd ? '_H' : ''] : ['', '_H'] as $mode) { foreach ($wantCh !== null ? [$wantCh] : ['L', 'R'] as $channel) { foreach (['', '_S'] as $suffix) { $candidate = $needle . $mode . '_' . $channel . $suffix; $shardPath = $SPRITE_DIR . DIRECTORY_SEPARATOR . nsc_sprite_aa($candidate) . DIRECTORY_SEPARATOR . $candidate . '.bin'; $flatPath = $SPRITE_DIR . DIRECTORY_SEPARATOR . $candidate . '.bin'; if (is_file($shardPath)) $sharded[] = $shardPath; if (is_file($flatPath)) $flat[] = $flatPath; } } } sort($sharded, SORT_STRING); sort($flat, SORT_STRING); $lookupFiles = array_merge($sharded, $flat); } else { $lookupFiles = nsc_sprite_glob('*.bin'); } foreach ($lookupFiles as $f) { $pid = basename($f, '.bin'); $basePid = preg_replace('/_S$/', '', $pid); if ($excludeBase !== '' && $basePid === $excludeBase) continue; if (!preg_match('/^(.+)_(L|R)(?:_S)?$/', $pid, $pm)) continue; if ($hasMode && pid_hd_video($pid) !== $wantHd) continue; if ($wantCh !== null && $pm[2] !== $wantCh) continue; if (preg_match('/^[1-9][0-9]*$/', $needle)) { if (nsc_public_ticket($pid) !== $needle) continue; } else { $hay = $wantCh === null ? $pid : $pm[1]; if (stripos($hay, $needle) === false) continue; } $mt = @filemtime($f); if ($mt === false || ($now - $mt) > $SPRITE_FRESH_SEC) continue; $sz = @filesize($f); if ($sz === false || $sz <= 0) continue; if ($mt > $bestMt || ($mt === $bestMt && strcmp($pid, $best[0] ?? '') < 0)) { $best = [$basePid, $f, $mt, $sz]; $bestMt = $mt; } } return $best; } // ===== ENCRYPTED RELAY CONTROLBOARD v2: protocol / routing / session / delivery ===== // Wire: NSC2 | ciphertext length u32be | board length u32be | opaque ciphertext | canonical JSON board. // This block is the only PHP wire definition. PHP never opens the encrypted media or private controls. function nsc_wire_peer($pid): bool { return is_string($pid) && preg_match('/^(?:[1-9][0-9]{0,17}|[0-9a-z]{8}|[0-9a-f]{16})(?:_H)?_[LR]$/D', $pid) === 1; } function nsc_controlboard_decode(string $json, int $cipherBytes): ?array { if (strlen($json) < 2 || strlen($json) > 2048) return null; $b = json_decode($json, true, 8); if (!is_array($b) || array_keys($b) !== ['protocol', 'routing', 'session', 'delivery']) return null; $sections = ['protocol' => ['v', 'suite', 'kind'], 'routing' => ['from', 'to', 'ns'], 'session' => ['sid', 'peer', 'pub'], 'delivery' => ['counter', 'head']]; foreach ($sections as $name => $keys) { if (!is_array($b[$name]) || array_keys($b[$name]) !== $keys) return null; } $p = $b['protocol']; $r = $b['routing']; $s = $b['session']; $d = $b['delivery']; if ($p['v'] !== 2 || $p['suite'] !== 'P256-HKDF-SHA256-A256GCM' || !in_array($p['kind'], ['hello', 'confirm', 'media'], true)) return null; if (!nsc_wire_peer($r['from']) || !is_string($r['to']) || ($r['to'] !== '' && !nsc_wire_peer($r['to'])) || !in_array($r['ns'], [0, 1], true)) return null; if ((pid_hd_video($r['from']) ? 1 : 0) !== $r['ns'] || ($r['to'] !== '' && (pid_hd_video($r['to']) ? 1 : 0) !== $r['ns'])) return null; if ($r['to'] === $r['from']) return null; if (!is_string($s['sid']) || preg_match('/^[a-f0-9]{32}$/D', $s['sid']) !== 1 || !is_string($s['peer']) || ($s['peer'] !== '' && preg_match('/^[a-f0-9]{32}$/D', $s['peer']) !== 1)) return null; if (!is_string($s['pub']) || preg_match('/^[A-Za-z0-9_-]{87}$/D', $s['pub']) !== 1) return null; $publicKey = base64_decode(strtr($s['pub'], '-_', '+/') . '=', true); if ($publicKey === false || strlen($publicKey) !== 65 || ord($publicKey[0]) !== 4 || rtrim(strtr(base64_encode($publicKey), '+/', '-_'), '=') !== $s['pub']) return null; foreach (['counter', 'head'] as $key) if (!is_int($d[$key]) || $d[$key] < 0 || $d[$key] > 9007199254740991) return null; if ($p['kind'] === 'hello') { if ($cipherBytes !== 0 || $d['counter'] !== 0) return null; } elseif ($cipherBytes < 16 || $d['counter'] < 1 || $r['to'] === '' || $s['peer'] === '') return null; if (json_encode($b, JSON_UNESCAPED_SLASHES) !== $json) return null; return $b; } function nsc_controlboard_blob(string $blob): ?array { $size = strlen($blob); if ($size < 14 || substr($blob, 0, 4) !== 'NSC2') return null; $h = unpack('Ncipher/Nboard', substr($blob, 4, 8)); if ($h['board'] < 2 || $h['board'] > 2048 || 12 + $h['cipher'] + $h['board'] !== $size) return null; return nsc_controlboard_decode(substr($blob, 12 + $h['cipher'], $h['board']), $h['cipher']); } function nsc_controlboard_file(string $file): ?array { $fh = @fopen($file, 'rb'); if (!$fh) return null; try { $stat = @fstat($fh); if (!$stat || $stat['size'] < 14 || $stat['size'] > 262144) return null; $raw = fread($fh, 12); if (strlen($raw) !== 12 || substr($raw, 0, 4) !== 'NSC2') return null; $h = unpack('Ncipher/Nboard', substr($raw, 4, 8)); if ($h['board'] < 2 || $h['board'] > 2048 || 12 + $h['cipher'] + $h['board'] !== $stat['size']) return null; if (fseek($fh, 12 + $h['cipher']) !== 0) return null; $json = fread($fh, $h['board']); if (strlen($json) !== $h['board']) return null; return nsc_controlboard_decode($json, $h['cipher']); } finally { fclose($fh); } } function nsc_ring_valid(string $blob, string $pid): bool { if (strlen($blob) > 160 || preg_match('/^(?:[1-9][0-9]{0,17}|[0-9a-z]{8}|[0-9a-f]{16})_W$/D', $pid) !== 1) return false; if (preg_match('/\Aring_from=([^\r\n]+)\nhead=1\nsid=ring\n\z/', $blob, $m) !== 1) return false; return nsc_wire_peer($m[1]); } function nsc_sprite_wire_valid(string $pid, string $blob): bool { if (preg_match('/_W$/', $pid)) return nsc_ring_valid($blob, $pid); $base = preg_replace('/_S$/', '', $pid); $board = nsc_controlboard_blob($blob); return $board !== null && $board['routing']['from'] === $base; } function nsc_upload_wire_valid(string $body, array $query): bool { $mode = $query['mode'] ?? 'same'; if (!is_string($mode) || !in_array($mode, ['same', 'split'], true)) return false; $parts = []; $offset = 0; foreach (['L', 'R'] as $ch) { $pid = $query['peerId' . $ch] ?? ''; if (!is_string($pid) || preg_match('/[^a-zA-Z0-9_\-]/', $pid)) return false; if ($mode === 'split') { $raw = $query['len' . $ch] ?? '0'; if (!is_string($raw) || preg_match('/^(?:0|[1-9][0-9]{0,5})$/D', $raw) !== 1) return false; $length = (int)$raw; if (($pid === '') !== ($length === 0) || $offset + $length > strlen($body)) return false; if ($length > 0) { if (!nsc_sprite_wire_valid($pid, substr($body, $offset, $length))) return false; $parts[] = $pid; } $offset += $length; } elseif ($pid !== '') { if (!nsc_sprite_wire_valid($pid, $body)) return false; $parts[] = $pid; } } return count($parts) > 0 && ($mode !== 'split' || $offset === strlen($body)); } // ===== END ENCRYPTED RELAY CONTROLBOARD ===== function stream_sprite_file($file) { $sz = @filesize($file); if ($sz === false || $sz <= 0) return false; $pid = basename($file, '.bin'); if (preg_match('/_W$/', $pid)) { if ($sz > 160 || !nsc_ring_valid((string)@file_get_contents($file), $pid)) return false; } elseif (nsc_controlboard_file($file) === null) return false; header('Content-Type: application/octet-stream'); header('Content-Length: ' . $sz); @readfile($file); return true; } // NS_CHAT_KYC_ARCHIVE_BEGIN — disabled 2026-10-08; preserve, do not execute. // Original configuration, helpers and callsites are grouped here for reviewable recovery. // Each following source line has only the leading // archive prefix added. // RESTORE LOCATION: BLOCK 1 configuration (before SEEK_MATCH_FRESH_MS) // $KYC_BASE = '/dev/shm/nosignup/kyc'; // $KYC_LOG_MAX_BYTES = 65536; // END RESTORE LOCATION // RESTORE LOCATION: BLOCK 1 environment detection (after MIRROR_JSON_BODY_MAX) // /* Optional KYC enable: /dev/shm is tmpfs|ramfs and /proc/swaps has no active swap. */ // $_kyc_sw = @file('/proc/swaps', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // $KYC_VOLATILE = (bool)preg_match('#^\S+\s+/dev/shm\s+(?:tmpfs|ramfs)\s#mi', (string)@file_get_contents('/proc/mounts')) // && is_array($_kyc_sw) && count($_kyc_sw) === 1; // unset($_kyc_sw); // if (!$KYC_VOLATILE && is_dir($KYC_BASE) && !is_link($KYC_BASE)) { // @unlink($KYC_BASE . '/metadata.log'); @unlink($KYC_BASE . '/.salt'); @rmdir($KYC_BASE); // } // END RESTORE LOCATION // RESTORE LOCATION: BLOCK 1 KYC helper functions (before sprite write) // // ---- BLOCK 1 helpers: volatile KYC (RAM only, fail-off) ---- // /* Volatile KYC: .salt + single metadata.log (64KiB cap); no persistent path. */ // function kyc_priv_salt() { // global $KYC_BASE, $KYC_VOLATILE; // if (!$KYC_VOLATILE) return null; // if (!is_dir($KYC_BASE)) @mkdir($KYC_BASE, 0700, true); // if (!is_dir($KYC_BASE) || is_link($KYC_BASE) || realpath($KYC_BASE) !== $KYC_BASE || !is_writable($KYC_BASE)) return null; // $f = $KYC_BASE . '/.salt'; // if (is_file($f)) { // $s = trim((string)@file_get_contents($f)); // if (preg_match('/^[a-f0-9]{64}$/', $s)) return $s; // } // try { // $s = bin2hex(random_bytes(32)); // } catch (Exception $e) { // $s = hash('sha256', uniqid('', true) . mt_rand()); // } // $fh = @fopen($f, 'x'); // if ($fh) { // $ok = (@fwrite($fh, $s) === strlen($s)); // @fclose($fh); // if ($ok) { // @chmod($f, 0600); // return $s; // } // } // $s = trim((string)@file_get_contents($f)); // return preg_match('/^[a-f0-9]{64}$/', $s) ? $s : null; // } // // function kyc_client_tag($ip, $extra = '') { // $salt = kyc_priv_salt(); // return (is_string($salt) && $salt !== '') ? substr(hash_hmac('sha256', (string)$ip . '|' . $extra, $salt), 0, 24) : null; // } // // function kyc_append($line) { // global $KYC_BASE, $KYC_VOLATILE, $KYC_LOG_MAX_BYTES; // if (!is_string($line) || $line === '' || strlen($line) > 512) return false; // if (!$KYC_VOLATILE || !is_dir($KYC_BASE) || is_link($KYC_BASE) || realpath($KYC_BASE) !== $KYC_BASE || !is_writable($KYC_BASE)) return false; // $logFile = $KYC_BASE . '/metadata.log'; // $fh = @fopen($logFile, 'c+b'); // if (!$fh) return false; // $ok = false; // if (@flock($fh, LOCK_EX)) { // $st = @fstat($fh); // $size = is_array($st) && isset($st['size']) ? (int)$st['size'] : $KYC_LOG_MAX_BYTES; // if (is_array($st) && isset($st['mtime']) && (time() - (int)$st['mtime']) > 86400 * 30 && @ftruncate($fh, 0)) $size = 0; // if ($size + strlen($line) <= $KYC_LOG_MAX_BYTES && @fseek($fh, 0, SEEK_END) === 0) { // $written = @fwrite($fh, $line); // $ok = ($written === strlen($line)); // if (!$ok && $written !== false) @ftruncate($fh, $size); // if ($ok) @fflush($fh); // } // @flock($fh, LOCK_UN); // } // @fclose($fh); // if ($ok) @chmod($logFile, 0600); // return $ok; // } // // function log_kyc($peerId, $remoteId = null) { // $pid = preg_replace('/[^a-zA-Z0-9_\-]/', '', $peerId); // if (preg_match('/^(.+)_S$/', $pid, $m)) $pid = $m[1]; // $rid = $remoteId === null ? '' : preg_replace('/[^a-zA-Z0-9_\-]/', '', $remoteId); // if ($pid === '' || ($remoteId !== null && $rid === '')) return; // $tag = kyc_client_tag((string)($_SERVER['REMOTE_ADDR'] ?? '0.0.0.0'), 'event'); // if (!is_string($tag) || $tag === '') return; // /* no sample.jpg/raw IP; ts + tag + peer [+ session] + act only */ // kyc_append($remoteId === null // ? (time() . ",$tag,$pid,kyc\n") // : (time() . ",$tag,$pid,$rid,session\n")); // } // // function log_kyc_session($peerId, $remoteId) { // log_kyc($peerId, $remoteId); // } // // END RESTORE LOCATION // RESTORE LOCATION: Upload handler before split/same branch // $doKyc = (mt_rand(1, 128) === 1); // $kycPid = null; // END RESTORE LOCATION // RESTORE LOCATION: Upload split L sample after successful write // if ($doKyc && $kycPid === null) { // $kycPid = $_GET['peerIdL']; // } // END RESTORE LOCATION // RESTORE LOCATION: Upload split R sample after successful write // if ($doKyc && $kycPid === null) { // $kycPid = $_GET['peerIdR']; // } // END RESTORE LOCATION // RESTORE LOCATION: Upload same sample after successful write // if ($doKyc && $kycPid === null) { // $kycPid = $_GET[$key]; // } // END RESTORE LOCATION // RESTORE LOCATION: Upload split L session call after successful write // if (isset($_GET['sessL'])) log_kyc_session($_GET['peerIdL'], $_GET['sessL']); // END RESTORE LOCATION // RESTORE LOCATION: Upload split R session call after successful write // if (isset($_GET['sessR'])) log_kyc_session($_GET['peerIdR'], $_GET['sessR']); // END RESTORE LOCATION // RESTORE LOCATION: Upload same session call after successful write // if (isset($_GET['sess' . $ch])) log_kyc_session($_GET[$key], $_GET['sess' . $ch]); // END RESTORE LOCATION // RESTORE LOCATION: Upload handler after split/same branch // if ($doKyc && $kycPid !== null) log_kyc($kycPid); // END RESTORE LOCATION // NS_CHAT_KYC_ARCHIVE_END // ---- BLOCK 1 helpers: sprite write ---- function write_sprite($pid, $blob) { global $SPRITE_DIR, $SPRITE_MAX_BYTES; $pid = preg_replace('/[^a-zA-Z0-9_\-]/', '', $pid); if (strlen($pid) < 3 || $blob === false || strlen($blob) === 0) return false; if (strlen($blob) > (int)$SPRITE_MAX_BYTES || !nsc_sprite_wire_valid($pid, $blob)) return false; $dst = nsc_sprite_path($pid, true); if ($dst === null) return false; /* R01 CHAT-09: write a private temp file in the same directory, then rename() over the active path so a concurrent reader sees either the previous complete sprite or the new complete one. */ $tmp = $dst . '.' . bin2hex(random_bytes(6)) . '.tmp'; $n = @file_put_contents($tmp, $blob); if ($n !== strlen($blob) || !@rename($tmp, $dst)) { @unlink($tmp); return false; } if (!preg_match('/_S$/', $pid)) { $aa = nsc_sprite_aa($pid); @unlink($SPRITE_DIR . DIRECTORY_SEPARATOR . $aa . DIRECTORY_SEPARATOR . $pid . '_S.bin'); @unlink($SPRITE_DIR . DIRECTORY_SEPARATOR . $pid . '_S.bin'); } return true; } function ns_chat_ad_opt_in(string $html): string { $html = preg_replace('/(]*?)\s+src=/', '$1 data-ns-ad-src=', $html) ?? ''; $button = ''; return str_replace('', $button . '', $html); } // ---- API router ---- $a = $_GET['api'] ?? ''; if ($a !== '') { header('Cache-Control: no-store, no-cache, must-revalidate'); /* WIRING-PARITY: public selfhash (trade-shape; no auth) */ if ($a === 'selfhash') { nsp_json([ 'ok' => true, 'version' => 'chat', 'sha256' => @hash_file('sha256', __FILE__) ?: null, 'file' => basename(__FILE__), ]); } // ===== ENCODER WORKER SCRIPT ===== if ($a === 'encworker' && $_SERVER['REQUEST_METHOD'] === 'GET') { $worker = <<<'JS' let _ocv=null,_octx=null; self.onmessage=async (e)=>{ const d=e.data; try{ const t0=performance.now(); if(!_ocv||_ocv.width!==d.w||_ocv.height!==d.h){ _ocv=new OffscreenCanvas(d.w,d.h); _octx=_ocv.getContext('2d'); } _octx.putImageData(new ImageData(new Uint8ClampedArray(d.buf),d.w,d.h),0,0); const t1=performance.now(); const b=await _ocv.convertToBlob({type:'image/jpeg',quality:d.q}); const ab=await b.arrayBuffer(); const t2=performance.now(); self.postMessage({id:d.id,ab:ab,wdraw:Math.round(t1-t0),wenc:Math.round(t2-t1)},[ab]); }catch(err){ self.postMessage({id:d.id,err:String(err)}); } }; JS; header('Content-Type: application/javascript; charset=UTF-8'); header('Content-Length: ' . strlen($worker)); echo $worker; exit; } // ===== MIC WORKLET SCRIPT ===== if ($a === 'micworklet' && $_SERVER['REQUEST_METHOD'] === 'GET') { $worker = <<<'JS' class N extends AudioWorkletProcessor{constructor(o){super();let p=o&&o.processorOptions||{};this.r=p.targetRate||8000;this.c=p.chunkBytes||2048;this.q=sampleRate/this.r;this.n=0;this.a=[]}e(v){let s=Math.max(-32768,Math.min(32767,v*32768))|0,g=s<0?128:0;if(g)s=-s;s=Math.min(s+132,32767);let e=7,m=16384;while(e>0&&!(s&m)){e--;m>>=1}return~(g|e<<4|(s>>e+3&15))&255}p(b){this.a.push(b);while(this.a.length>=this.c){let o=new Uint8Array(this.a.splice(0,this.c));this.port.postMessage({buf:o.buffer},[o.buffer])}}process(i,o){let z=o[0]&&o[0][0];if(z)z.fill(0);let x=i[0]&&i[0][0];if(!x)return true;let r=this.q>0?this.q:sampleRate/this.r,p=this.n;while(p 0, 'rejected' => 0, 'changed' => false]; /* P1-CHAT-MIRROR-GET-METHOD: GET is sample-only JSON (never face HTML, never write). * Mirror ingest (accepted/rejected) is POST-only. */ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $rawBody = ''; /* Prefer form fields m|host|url; never treat raw "host=127.0.0.1" as a URL host. */ if (isset($_POST['m']) && (string)$_POST['m'] !== '') { $rawBody = nsc_mirror_field_cap((string)$_POST['m']); } elseif (isset($_POST['host']) && (string)$_POST['host'] !== '') { $rawBody = nsc_mirror_field_cap((string)$_POST['host']); } elseif (isset($_POST['url']) && (string)$_POST['url'] !== '') { $rawBody = nsc_mirror_field_cap((string)$_POST['url']); } else { $rawIn = nsc_mirror_body_read(); if (stripos((string)($_SERVER['CONTENT_TYPE'] ?? ''), 'application/json') !== false) { $jd = json_decode($rawIn, true); if (is_array($jd) && isset($jd['m'])) $rawBody = (string)$jd['m']; elseif (is_array($jd) && isset($jd['url'])) $rawBody = (string)$jd['url']; elseif (is_array($jd) && isset($jd['host'])) $rawBody = (string)$jd['host']; } elseif (preg_match('/(?:^|&)(?:m|host|url)=([^&]*)/i', $rawIn, $mm)) { $rawBody = rawurldecode($mm[1]); } else { $rawBody = $rawIn; /* plain URL body */ } } if ($rawBody !== '') $add = mirrors_add($rawBody); } elseif (!in_array(strtoupper((string)($_SERVER['REQUEST_METHOD'] ?? 'GET')), ['GET', 'HEAD'], true)) { http_response_code(405); echo json_encode(['ok' => 0, 'err' => 'method not allowed', 'allow' => 'GET, POST'], JSON_UNESCAPED_SLASHES); exit; } $j = json_encode([ 'ok' => 1, 'mirrors' => mirrors_sample(8), 'accepted' => (int)$add['accepted'], 'rejected' => (int)$add['rejected'], 'law' => 'Private/RFC2606/example hosts rejected — never sampled', ], JSON_UNESCAPED_SLASHES); header('Content-Length: ' . strlen($j)); echo $j; exit; } // ===== UPLOAD ===== /** P1-CHAT-UPLOAD-METHOD RR209: non-POST must not fall through as unknown api (404). * Sisters date/work/market answer write routes with 405 POST only. */ if ($a === 'upload' && strtoupper((string)($_SERVER['REQUEST_METHOD'] ?? '')) !== 'POST') { nsp_json(['ok' => false, 'err' => 'POST only'], 405); } if ($a === 'upload' && $_SERVER['REQUEST_METHOD'] === 'POST') { if (!$SPRITE_RAM_READY) nsp_json(['ok' => false, 'err' => 'Volatile relay storage unavailable; use another mirror'], 503); $codeStart = microtime(true); $reqStart = $_SERVER['REQUEST_TIME_FLOAT'] ?? $codeStart; // pre-PHP time: body upload + FPM queue $writes = 0; $accepted = ''; // R01 CHAT-02: which destinations (L/R) were actually stored $clRaw = (string)($_SERVER['CONTENT_LENGTH'] ?? ''); if ($clRaw !== '' && (!ctype_digit($clRaw) || (int)$clRaw > (int)$GLOBALS['SPRITE_MAX_BYTES'])) { nsp_json(['ok' => false, 'err' => 'sprite too large'], 413); } header('Content-Type: application/json'); $body = @file_get_contents('php://input', false, null, 0, (int)$GLOBALS['SPRITE_MAX_BYTES'] + 1); if ($body !== false && strlen($body) > (int)$GLOBALS['SPRITE_MAX_BYTES']) { nsp_json(['ok' => false, 'err' => 'sprite too large'], 413); } if ($body === false) nsp_json(['ok' => false, 'err' => 'Could not read sprite upload; retry'], 500); if ($body === '') nsp_json(['ok' => false, 'err' => 'Need sprite bytes to upload'], 400); if (!nsc_upload_wire_valid($body, $_GET)) nsp_json(['ok' => false, 'err' => 'Invalid encrypted sprite framing or split lengths'], 400); $uploadMode = (string)($_GET['mode'] ?? 'same'); $uploadTargets = 0; foreach (['L', 'R'] as $ch) { $target = $_GET['peerId' . $ch] ?? ''; if (!is_string($target)) continue; $target = preg_replace('/[^a-zA-Z0-9_\-]/', '', $target); if (strlen($target) >= 3 && ($uploadMode !== 'split' || (int)($_GET['len' . $ch] ?? 0) > 0)) $uploadTargets++; } if ($uploadTargets === 0) nsp_json(['ok' => false, 'err' => 'Need a valid peerIdL or peerIdR and, for split uploads, its byte length'], 400); if ($body !== false && strlen($body) > 0) { $mode = $_GET['mode'] ?? 'same'; if ($mode === 'split') { $lenL = max(0, (int)($_GET['lenL'] ?? 0)); $lenR = max(0, (int)($_GET['lenR'] ?? 0)); if ($lenL > 0 && isset($_GET['peerIdL'])) { $part = substr($body, 0, $lenL); if (write_sprite($_GET['peerIdL'], $part)) { $writes++; $accepted .= 'L'; } } if ($lenR > 0 && isset($_GET['peerIdR'])) { $part = substr($body, $lenL, $lenR); if (write_sprite($_GET['peerIdR'], $part)) { $writes++; $accepted .= 'R'; } } } else { foreach (['L', 'R'] as $ch) { $key = 'peerId' . $ch; if (isset($_GET[$key]) && write_sprite($_GET[$key], $body)) { $writes++; $accepted .= $ch; } } } } if ($writes === 0) nsp_json(['ok' => false, 'err' => 'Could not store sprite upload; retry or use another mirror'], 500); header('X-Upload-Queue-Ms: ' . round(($codeStart - $reqStart) * 1000)); header('X-Upload-Code-Ms: ' . round((microtime(true) - $codeStart) * 1000)); header('X-Upload-Writes: ' . $writes); header('X-Upload-Accepted: ' . $accepted); // R01 CHAT-02: per-destination acceptance; client settles only these lines header('X-Upload-Required: ' . $uploadTargets); header('Access-Control-Expose-Headers: X-Upload-Writes, X-Upload-Accepted, X-Upload-Required, X-Upload-Queue-Ms, X-Upload-Code-Ms, X-Sprite-Store'); header('X-Sprite-Store: ram'); header('Content-Length: 8'); // exact length of {"ok":1} - client finishes the response immediately, doesn't wait on connection framing echo '{"ok":1}'; exit; } // ===== SPRITE FETCH ===== if ($a === 'sprite' && $_SERVER['REQUEST_METHOD'] === 'GET') { if (!$SPRITE_RAM_READY) nsp_json(['ok' => false, 'err' => 'Volatile relay storage unavailable; use another mirror'], 503); header('Access-Control-Allow-Origin: *'); header('Access-Control-Expose-Headers: X-Match-Peer, X-Match-Sid, X-Match-Head, X-Resolved-Peer'); $pid = preg_replace('/[^a-zA-Z0-9_\-]/', '', $_GET['peerId'] ?? ''); /* RR348 P1-CHAT-SPRITE-PEER-PLAIN: empty 400 body → JSON plain (poll 404 stays empty binary) */ if (strlen($pid) < 3 && !preg_match('/^[1-9][0-9]*$/', $pid)) { header('Content-Type: application/json; charset=utf-8'); http_response_code(400); echo json_encode(['ok' => false, 'err' => 'Need a peerId to fetch a sprite — open Try Random Peer / paste an ID on the face'], JSON_UNESCAPED_SLASHES); exit; } $fromPid = preg_replace('/[^a-zA-Z0-9_\-]/', '', $_GET['fromPeerId'] ?? ''); if ($fromPid !== '' && pid_has_panel($fromPid) && pid_has_panel($pid) && pid_hd_video($fromPid) !== pid_hd_video($pid)) { http_response_code(404); exit; } $now = time(); // The reserved single-caller ring slot is exact, never a substring or bridge probe. if (preg_match('/_W$/', $pid)) { $ring = sprite_info($pid); if ($ring === null || ($now - $ring[1]) > $SPRITE_FRESH_SEC || !stream_sprite_file($ring[0])) http_response_code(404); exit; } if (preg_match('/^(.+)_(L|R)_S$/', $pid, $m)) { $base = $m[1]; $ch = $m[2]; $candidates = []; $nowMs = microtime(true) * 1000; $wantHd = pid_hd_video($pid); foreach (nsc_sprite_glob("*_{$ch}_S.bin") as $f) { $other = basename($f, '.bin'); if ($other === $pid) continue; if (pid_hd_video($other) !== $wantHd) continue; $mt = @filemtime($f); if ($mt === false) continue; if (($nowMs - ($mt * 1000)) > $SEEK_MATCH_FRESH_MS) continue; if (nsc_public_ticket($other) === nsc_public_ticket($pid)) continue; $candidates[] = $other; } if ($candidates) { $found = $candidates[array_rand($candidates)]; $remoteBase = preg_replace('/_S$/', '', $found); $foundPath = nsc_sprite_path($found, false); $board = $foundPath !== null ? nsc_controlboard_file($foundPath) : null; if ($board === null) { http_response_code(204); exit; } $sid = $board['session']['sid']; $head = (string)$board['delivery']['head']; header('X-Match-Peer: ' . $remoteBase); if ($sid !== null && $sid !== '') header('X-Match-Sid: ' . $sid); if ($head !== null && $head !== '') header('X-Match-Head: ' . preg_replace('/[^0-9]/', '', $head)); header('Content-Type: application/octet-stream'); header('Content-Length: 0'); http_response_code(200); exit; } http_response_code(204); exit; } $resolvedPid = null; $info = sprite_info($pid); if ($info !== null && ($now - $info[1]) > $SPRITE_FRESH_SEC) $info = null; if ($info === null && preg_match('/^.+_(L|R)$/', $pid)) { $aliasInfo = sprite_info($pid . '_S'); if ($aliasInfo !== null && ($now - $aliasInfo[1]) <= $SPRITE_FRESH_SEC) $info = $aliasInfo; } if ($info === null) { $partial = sprite_partial_info($pid, $fromPid); if ($partial !== null) { $resolvedPid = $partial[0]; $info = [$partial[1], $partial[2], $partial[3]]; } } if ($info === null || ($now - $info[1]) > $SPRITE_FRESH_SEC) { http_response_code(404); exit; } if ($resolvedPid !== null) header('X-Resolved-Peer: ' . $resolvedPid); $serve = $info[0]; // Bridging is authenticated browser rewrap; PHP never redirects media to a third sender. if (!stream_sprite_file($serve)) http_response_code(404); exit; } // ===== ID MILL (POST only) ===== if ($a === 'id') { if (strtoupper((string)($_SERVER['REQUEST_METHOD'] ?? '')) !== 'POST') { nsp_json(['ok' => false, 'err' => 'POST only'], 405); } $id = nsc_mint_next_id(); if ($id === null || $id === '') { nsp_json(['ok' => false, 'err' => 'ID mill busy'], 503); } nsp_json(['ok' => true, 'id' => $id]); } /* RR323 P1-CHAT-UNKNOWN-API-PLAIN: unknown api (e.g. send) must not return empty 404 body */ nsp_json([ 'ok' => false, 'err' => 'Unknown chat API — use id, mirror, upload, sprite, selfhash, or open the face to peer-match (no send endpoint)', 'api' => (string)$a, ], 404); } // ---- source / download stream (raw bytes, parity headers) ---- if (isset($_GET['src']) || isset($_GET['download'])) { $raw = (string)file_get_contents(__FILE__); $download = isset($_GET['download']); header('Content-Type: text/plain; charset=UTF-8'); header('Content-Disposition: ' . ($download ? 'attachment' : 'inline') . '; filename="index.php"'); header('Access-Control-Allow-Origin: *'); header('Access-Control-Expose-Headers: X-NSC-Parity-SHA256, X-NSC-Source-SHA256'); header('X-NSC-Source-SHA256: ' . hash('sha256', $raw)); header('X-NSC-Parity-SHA256: ' . source_hash($raw)); header('Content-Length: ' . strlen($raw)); echo $raw; exit; } /* EMPIRE SETUP GATE → trade console until filled (api/src/download/panel exempt) */ (function () { $api = (string)($_GET['api'] ?? $_POST['api'] ?? ''); if ($api !== '') return; if (isset($_GET['src']) || isset($_GET['download']) || isset($_GET['controlpanel']) || isset($_GET['empire_setup']) || isset($_GET['setup'])) return; $uri = (string)($_SERVER['REQUEST_URI'] ?? ''); if (preg_match('#/(controlpanel|setup)/?(\?|$)#', $uri)) return; $dataDir = __DIR__ . DIRECTORY_SEPARATOR . 'data'; $ok = false; $local = $dataDir . DIRECTORY_SEPARATOR . 'empire_setup.json'; if (is_file($local)) { $lj = json_decode((string)@file_get_contents($local), true); $ok = is_array($lj) && !empty($lj['filled']); } $cache = $dataDir . DIRECTORY_SEPARATOR . 'empire_setup_status_cache.json'; if (!$ok && is_file($cache)) { $c = json_decode((string)@file_get_contents($cache), true); if (is_array($c) && isset($c['ts'], $c['filled']) && (time() - (int)$c['ts']) < 60 && !empty($c['filled'])) $ok = true; } if (!$ok) { $ctx = stream_context_create(['http' => ['timeout' => 2.5, 'ignore_errors' => true]]); $httpsOn = (!empty($_SERVER['HTTPS']) && strtolower((string)$_SERVER['HTTPS']) !== 'off') || ((int)($_SERVER['SERVER_PORT'] ?? 0) === 443) || (strtolower((string)($_SERVER['REQUEST_SCHEME'] ?? '')) === 'https') || (strtolower((string)($_SERVER['HTTP_X_FORWARDED_PROTO'] ?? '')) === 'https'); $scheme = $httpsOn ? 'https' : 'http'; $rawS = @file_get_contents($scheme . '://nosignup.trade/?api=empire_setup_status', false, $ctx); $httpsHit = false; if (is_string($rawS) && $rawS !== '') { $j = json_decode($rawS, true); if (is_array($j) && array_key_exists('filled', $j)) { $httpsHit = true; $ok = !empty($j['filled']); if (!is_dir($dataDir)) @mkdir($dataDir, 0755, true); @file_put_contents($cache, json_encode(['ts' => time(), 'filled' => $ok]) . "\n", LOCK_EX); } } if (!$httpsHit && !$ok && is_file($cache)) { $c = json_decode((string)@file_get_contents($cache), true); if (is_array($c) && !empty($c['filled'])) $ok = true; } } if (!$ok) { header('Cache-Control: no-store'); header('Location: //nosignup.trade/?empire_setup=1', true, 302); exit; } })(); ?> NOSIGNUP.CHAT · peer pixel chat (try a peer path)
*

Options

VIDEO

Privacy & device security

Encrypted media is briefly relayed. Routing numbers, timing and sizes remain visible. Your browser keeps options and voluntary reports. Optional ads and Wallet contact Trade when you choose them.

Use trusted, up-to-date devices and browser software. Compare the full connection code through an independent trusted channel to verify your peer. Encryption alone cannot authenticate an anonymous peer or protect a compromised device. A bridge participant is another endpoint.

ADVANCED

COMMAND

$
$

HD MAY EXPOSE YOUR IP

HD gives you clearer video over a direct peer connection.

YOUR IP MAY BE EXPOSED TO YOUR PEER.

Audio and video still use browser encryption.


HTML is the default: low resolution, encrypted before relay, with your IP hidden from your peer.

Both modes are unmoderated. Enter at your own risk.

$

DONATE

NSU is free to use.
If you want to fund hosting and continued development, donations are optional.

BITCOINbc1qqnu6n0jztxl4f6krv7klradghle09uhyu7uymz
MONERO8Ab24DppUvcdtHfm7K8gTqdBTmPCBiak1GwxgPm1C3osYVQL2QdC1C8GMwggKF77RKKzDgP2R8E3VH8ifetsKms5AqkVyVg
LITECOINltc1qlpdy8qzejcmjdn6vwarpyz8djdlk780w4qkwyp

+

Mirrors / Donate

FACE MIRROR — a compatible alternate host for this CHAT face.
SPORE — a complete configured ten-face organism.
EMPIRE — the lineage/economy a Genesis spore creates or a clone-Mirror joins.

Stage a face-mirror URL. Browser checks build fingerprint + exact face before use. A CHAT face mirror is not by itself a sovereign economy.

Download full ten-face spore


Advertisement'; } return ''; } /** Chat-only: one stretch cell for a remote pane (not the 49-tile board). */ function nsu_ad_slot_html_one(string $pane = 'L'): string { $t = nsu_crop_tld(); if ($t === '' || !in_array($t, nsu_ad_sites(), true)) return ''; $url = nsu_ad_slot_url($t); if ($url === '') return ''; $pane = ($pane === 'R') ? 'R' : 'L'; $dest = htmlspecialchars(nsu_trade_origin() . '/', ENT_QUOTES, 'UTF-8'); $cell = 'Advertisement'; return ''; } /** Ad-report endpoint only. Trade validates slot/epoch and owns acceptance, * configured takedown and showings state. Sending a report is not proof of a * takedown, ownership or refund; this helper grants no economic authority. */ function nsu_report_endpoint(): string { $t = nsu_crop_tld(); if ($t === '' || !in_array($t, nsu_ad_sites(), true)) return ''; return nsu_trade_origin() . '/?api=ad_report&crop=' . urlencode($t); } /* ===================== END ECONOMY+IDENTITY TELOMERE ================== */ /* DO NOT DELETE THIS TELOMERE : * OWNER AMENDMENT 2026-10-08: HTML AND HD CHOICE. The entry displays the HTML and HD controls * and identifies HTML as the default. HTML encrypts before relay and hides a node IP from its * peer. HD uses encrypted WebRTC and may expose the node IP to its peer. Both modes are * unmoderated. Entry and HD confirmation must state the IP exposure clearly and must not * claim that HD is unencrypted. The mode button displays its current mode. This is * presentation only; encryption, routing, consent and age checks retain their existing * behavior. * * OWNER AMENDMENT 2026-10-08: NSC2. This user-requested privacy/encryption release supersedes * conflicting historical wire preservation, optional KYC, plaintext tails and PHP bridge * redirection. The expanded protocol amendment and updated lossless recovery parts are below. * Browser-only AES-GCM media uses a sectioned public controlboard; default encryption is peer- * unverified until trusted full-code comparison. KYC is retained inert, debug copies are * allowlisted, relay lookups/retention are bounded, and fresh genesis reinstalls the Chat host * policy. This is not proof of anonymity or device security. * * REPAIR METAPHOR: Telomeres carry repair instructions; future hub AI may * act as telomerase, proposing and testing repairs. Epigenetic repair is * an analogy here, not a biological claim or an implemented AI capability. * * * Two caps protect this face. The FRONT cap sits right after the opening PHP * tag and the BACK cap is the last thing in the file. Both hold this same text, * so either end can rebuild the other if one is cut, and the truth kernel in * this text survives edits in the middle. Comments only: no code, no output, no * declarations. A cap describes the file; it grants no authority, approves no * work, and is not proof that anything listed as a plan is implemented. * * * FRONT CAP: charter, face purpose, truth kernel. * Charter source of truth: the FINAL-PACK MAINTENANCE CHARTER, the * NOSIGNUP.CHAT FILE HEADER, the FALLBACK / TOR note and both PROTOCOL * CONTRACT bookends elsewhere in this file stay in place under the dated owner revision. This * cap only summarizes them; where they differ, the in-place prose and the * live file win. * Face: nosignup.chat. Purpose: Audio / Video / Chat. No signup. * Product: dual-pane (left/right) peer video chat. HTML mode is the safer * default (the local preview matches the outgoing JPEG cell); HD is optional * and visibly hazardous. PHP is a dumb switchboard that relays sprite blobs; * the browser owns identity, mirrors, bridge, chat text and UI. Try Peer and * PeerID are invitations to try a peer path, never promises of a match. * Truth kernel: * - One stock-PHP file; no composer/npm/database dependency; no visitor signup, * recovery account, tracking profile, shared bank, SSO, or paywall on basic use. * - Keep ?src=1 and ?download=1 auditable. This host owns only its own data, * vault and operator panel. A panel is never a visitor identity. * - A public ticket identifies a browser-held instance, not a verified person. * - Never become Omegle theater, a central matching/moderation service, an * account system, chat-gems or a second currency, a paid match queue, a hidden * identity graph, a fake reliability claim, a protocol rewrite, or an external * AI authority. * - Preserve wire/protocol shapes and the two-pane product. Change engines only * for a reproduced protocol failure with before/after evidence. * - Trade owns the only chain, spend authorization, settlement and ad state. * Shared wallet access and Donate are not a face ledger, mint or account. * - Fix evidence, not product fantasy. Proof: PHP lint, source parity, and a * real two-browser note before claiming peer or match behavior works. * * * BACK CAP: ECONOMY+IDENTITY functions, listed by name only. Their declarations * live once, in place; this list never redeclares them. Bodies are byte-identical * to live 5ec6c33a540c7c03848af0280399baa8308031c4b5ef826cccd99eb2551b60b3. * Body span: PHP = from the T_FUNCTION token through its matching closing brace * (token_get_all); JS = acorn FunctionDeclaration/named FunctionExpression * start..end (from "function" through its closing brace), raw file bytes. * sha256 is over exactly those bytes. Reproduce: proof-telomere/tel_hashes.sh. * If a body changes on purpose, update its hash in BOTH caps in the same put. * PHP: * nsu_crop_tld * crop TLD from HTTP_HOST (nosignup.) or '' so callers fail closed * sha256 ed37cfe99999b98e615c3d3feba0bce832fb39b3a0f21bd24898685db41e075f (254 bytes) * nsu_trade_origin * constant 'https://nosignup.trade'; Trade owns the only chain * sha256 0adf9d607f0e94dcb301f5dbb0249215c11fca545e705665b52cbf645fee6db7 (76 bytes) * nsu_ad_sites * the ten crop TLDs allowed on the empire ad board * sha256 eace55daa6d916e0fcd185a2394eae65dceb4785b1881e90890522f2c6603c73 (117 bytes) * nsu_ad_roll_n * random_int 0..9999 board slot roll * sha256 14442da5dc0d35f8213e553ba5111657efc14b5ea206e5cac3506d9518c5babc (61 bytes) * nsu_ad_slot_url * Trade ad-slot URL for a crop and slot n, '' for an unknown crop * sha256 d61b5b7e97342ecc0b6ed154b6f20909fc45e61f08fa9edd1b92bd170958421a (390 bytes) * nsu_board_endpoint * ad-slot URL for this crop with a fresh roll * sha256 6143293c604bf7346eca3a52615f19dbfcd29249747d270c4968d5ea219467aa (67 bytes) * nsu_ad_slot_html * 49-cell ad board aside for this crop, '' if the crop cannot name itself * sha256 87a3acbbb80d06daeef1d39f14e0220fb321efe450d95cfeb0bfdf0526182b1a (794 bytes) * nsu_ad_slot_html_one * Chat-only single stretch ad cell for remote pane L or R, '' fail-closed * sha256 07fd03b8f059b3b5d5ca65511d0a2d945224507dacba8a07acaed0896e4eab56 (702 bytes) * nsu_report_endpoint * Trade ad_report URL for this crop; ad reports only, never peer identity * sha256 01cf2e209f80d6a9de55a4492e4fcc3b4033f34b6ca9632e06f81320b6b47e5a (209 bytes) * nsp_norm_seed * lowercase, trim and single-space a site seed phrase * sha256 e6955afc7cb1e2c00ddabe3c71b5700644dac132ea92ad4d460aa4516e7b0544 (112 bytes) * nsp_addr_from_seed * owner-panel address = sha256('nsu-addr-v1|' . normalized seed); no visitor ledger * sha256 15f02a224094227539cb792006fc2167a192b5e9739ca8f6ade8b249c05719ee (119 bytes) * nsp_generate_site_seed * 12-word CSPRNG site seed from a fixed pool (not BIP39); panel unlock for this crop only * sha256 aa9a04e02243cd6572acddd16f63c13ccc0f0dac46ad80676ac112c896aa5bae (2685 bytes) * nsp_ensure_site_seed * idempotently ensure data/site.seed and its vault note; not a faucet or mint * sha256 2a1dc3259ba66a4b8e1b935bf5e3ee626da1aef0e0d2f9ffcb13961fdfe0c800 (652 bytes) * nsc_public_ticket * public ticket from a peerId: strip _H_(L|R), then _(L|R), then _S * sha256 819d4c8693128cea9ed2191b4e0a368982e14c2e745dc7c852bc8181235b9d2c (288 bytes) * nsc_ticket_read_counter * read an id.counter file as an integer, 0 if missing or malformed * sha256 d24cba221e2586f8334798b86ec3b89d82fb803c38a0597698e50dc118c0cb17 (229 bytes) * nsc_ticket_seed_counter * flock a counter file and raise it to max; never lowers an existing counter * sha256 18ea6c33ae91c4126e265f579e64ca558bda53a3f494b07b85b499218a9463ce (793 bytes) * nsc_ticket_mill_path * choose the shared id mill (nosignup.shared, chat, trade, then local data) without lowering it * sha256 214a2b4bb457f5a749f699fd735fbd8d29644c2c528b429cd56f3de04eadd393 (1347 bytes) * nsc_id_counter_file * alias for nsc_ticket_mill_path() * sha256 61dbf6b117681d9d6c119584757d3edbbb98667d97116bfc76c26e3e6bc22992 (77 bytes) * nsc_mint_next_id * flock-increment the shared mill and return the next public ticket, null fail-closed; never remint * sha256 6ac56ff8df19c0ca88c61d5e25adeebb1c4eb8d7783654db6e1c21be8af0a7de (1271 bytes) * JS (BLOCK 2 identity, report key, wallet seed slot): * nscNormTicket * normalize a ticket: integer, 16-hex or 8-char legacy, else empty * sha256 ed7056f2b27b7473d460ed9fc56f75544cc09a28b880b8f0246d20676210e3d2 (257 bytes) * nscIsIntegerTicket * true only for a sequential integer ticket * sha256 259f7775258f016b3078ab14087e7c44fca25aaade9686d8afe99243de23f3c3 (86 bytes) * nscPublicTicket * public ticket from a peerId (JS twin of nsc_public_ticket) * sha256 e9b170d05f372caf92bf0693e6651865c6e658d223e5851c676bc1fc477fbdd2 (233 bytes) * nscIsCompletePublic * true for a complete integer, 8-char or 16-hex public id * sha256 2d0054a24f1c961ff81961c4272557fc09cfff9b0ff169594818ed029e276b92 (151 bytes) * nscReadStoredPublicId * read nosignup_device_id, then nosignup_auto_id, from localStorage; integer only * sha256 48fd8140486bc7dcdcda5366f6d0d4b292d7f1cdfe09c4db4d0f8f299f7bf959 (270 bytes) * nscApplyPublicId * set deviceId/MY_BASE and refresh own-ID labels; no network * sha256 3f3d85284d9196392e81e1bf0de379464b6057b795093e91b8810d86f0b0cf08 (318 bytes) * nscMintFromServer * POST ?api=id once, store the ticket in both keys, apply it * sha256 a432a2cea8762bb48b15fcecbff229e0e8f3cd904af6d751e97afd4c07f0a308 (437 bytes) * nscEnsurePublicId * use the stored integer ticket, else one shared in-flight mint * sha256 93b6017993facbe6fdb9079fa38467386e732e134acaa494d20de0855db59e47 (364 bytes) * setOverrideId * store a local override ticket in nosignup_device_id and apply it * sha256 4e9dddd0c815287252e63077d6208bcfb02619f23d3cd5b6b56831885fd6957f (193 bytes) * clearOverrideId * remove the override and fall back to the auto ticket or a mint * sha256 875edf05f682bbdd42407ba85a9734975e676203b98d9e5376da1a7bbc529b40 (219 bytes) * claimIdIfFree * hook for Trade; chat only stores a local override (no visitor ledger) * sha256 289a76b7924142bfb18ebd838b470ff08f4f3d2b34aea749e40195d4c0f81ad7 (57 bytes) * nscHashIdBoot * honor #id= as self before the mill; never #peerId= as self * sha256 abf90ad41804a2479ecf68263bba2583252bc0b48e0986395818a64a68a61c2a (320 bytes) * NS_REPORT_CREATE * browser-owned signed person report/ack (key nosignup_report_sign_v1), 5-slot UTC-day quota * sha256 1ba5f27ff435a470967b607834a41047eac6bdc5dad728aa3df6a0268ddd13a8 (35304 bytes) * nsuAgreeWalletOnce * preserved legacy helper; entry no longer invokes automatic wallet creation * sha256 4d8ba7d47700526de3711f41ef344e8a201a46833748e9a4c1cb69eb085539ba (491 bytes) * factory#nosignup_wallet_seed * NSUWalletServiceFactory: browser-local wallet words (nosignup_wallet_seed); Trade settles * sha256 bdc1c332693af52e5558b71b701ece38666d3033e5732ee492df816e41af2ad3 (23321 bytes) * Slots (not functions): DEVICE_KEY nosignup_device_id; AUTO_ID_KEY * nosignup_auto_id; SEED_KEY nosignup_wallet_seed (browser-local, never sent); * SIGN_KEY nosignup_report_sign_v1 (inside NS_REPORT_CREATE). * * * Strict improvement only: a change must leave every proof as good or better. * Alternate waves: one wave of improvements, then one wave of simplifications. * Economy first. 30-day default expiry. Trade owns the only chain; NSU is a * donation; there is no second ledger, mint, faucet, or tax. Gates stay closed * until Sebastian releases them. * Chat standing rules: live is authority; percent sizing; dual panes always; * #ffaa00 accent; reporting is NOT COMPLETE until three live browsers and a real * camera are authorized and tested. * END OF TELOMERE TEXT * * LOSSLESS RECOVERY ADDENDUM - 2026-10-07 * The readable summaries and hash tables above are supplemented by complete * original front charter blocks and the entire ECONOMY+IDENTITY telomere below. * Each part preserves its exact bytes, line endings, length and SHA-256. * Encoding keeps comment terminators and PHP declarations inert. No executable * declaration is duplicated. Either end alone contains all recovery parts. * Decode the base64 envelope as JSON, then each part.data as base64; verify * part.bytes and part.sha256 before recovery. Never execute the decoded text. * Pack tool: NSU-DNA/tools/verify-pins.php --telomeres-only PACK_DIRECTORY. * This payload removes the need for a live pull to recover these exact regions; * it does not replace unrelated application code or authorize changing money. * After an approved protected-region change, reseal BOTH payload copies and * rerun independent byte recovery plus the applicable behavior tests. * NSU-RECOVERY-V1-BEGIN * eyJzY2hlbWEiOiJuc3UtdGVsb21lcmUtcmVjb3ZlcnkvMSIsInNvdXJjZV9zaGEyNTYiOiJjMDkwYmE3ZGRjOWY4MjVjZDRlMmMy * MmJjYzgwZmMyMDhiOWJhYzQxZDE2ZTFmZjU4NWI0ZWEwMDUxMTlmN2U1IiwicGFydHMiOlt7ImlkIjoidGVsb21lcmUxLTAxIiwi * bGFiZWwiOiJGSU5BTC1QQUNLIE1BSU5URU5BTkNFIENIQVJURVIgLS0gRE8gTk9UIERFTEVURS4iLCJieXRlcyI6Mzc2OCwic2hh * MjU2IjoiZmI5YjM5NjhkOWExNmZiZjc3N2M2NzAwMDg4ZDIxNDZiMDEwZWE2MTQ1NjZhN2QxMTI5YTYwNDk5NTI3YmQ5MSIsImRh * dGEiOiJMeW9xQ2lBcUlFOVhUa1ZTSUVGTlJVNUVUVVZPVkNBeU1ESTJMVEV3TFRBNE9pQlVhR1VnVGxORE1pQndjbTkwYjJOdmJD * QmhiV1Z1WkcxbGJuUWdZbVZzYjNjZ2MzVndaWEp6WldSbGN5QmpiMjVtYkdsamRHbHVad29nS2lCb2FYTjBiM0pwWTJGc0lIQnlh * WFpoWTNrdmQybHlaU0J5ZFd4bGN5NGdTMWxESUdseklHTnZiVzFsYm5SbFpDQmhibVFnYVc1aFkzUnBkbVVzSUhkb2IyeGxJRzFs * WkdsaElHbHpJR1Z1WTNKNWNIUmxaQ3dLSUNvZ2JXVmthV0VnYzNSdmNtRm5aU0JtWVdsc2N5QmpiRzl6WldRZ2IzVjBjMmxrWlNC * U1FVMHNJR0Z1WkNCb2IzTjBJSEJ2YkdsamVTQnBjeUJsZUhCc2FXTnBkQzRnVUhKdlpIVmpkQ0J3ZFhKd2IzTmxPaUJCZFdScGJ3 * b2dLaUF2SUZacFpHVnZJQzhnUTJoaGRDNGdUbThnYzJsbmJuVndMZ29nS2lBS0lDb2dSa2xPUVV3dFVFRkRTeUJOUVVsT1ZFVk9R * VTVEUlNCRFNFRlNWRVZTSUMwdElFUlBJRTVQVkNCRVJVeEZWRVV1Q2lBcUNpQXFJRU5WVWxKRlRsUWdVRkpQUkZWRFZDQkJUVVZP * UkUxRlRsUWdNakF5TmkweE1DMHdNeUF0SUc5M2JtVnlMV1JwY21WamRHVmtJR1Z1ZEhKaGJtTmxJSEp2ZFc1a0xnb2dLaUJRZFhK * d2IzTmxPaUJCZFdScGJ5QXZJRlpwWkdWdklDOGdRMmhoZEM0Z1RtOGdjMmxuYm5Wd0xnb2dLaUJWYzJVZ2IyNWxJSEpsWVdSaFlt * eGxJSEJ5YjNCdmNuUnBiMjVoYkNCbGJuUnlZVzVqWlNCbVlXMXBiSGtzSUdOaGNuSjVhVzVuSUhSb2FYTWdabUZqWlNkekNpQXFJ * RzkzYmlCdGIzUnBaaUJoYm1RZ2NHRnNaWFIwWlM0Z1RHVmhaQ0IzYVhSb0lIVnpaV1oxYkNCd2JHRnBiaUIzYjNKa2N6c2djSEps * YzJWeWRtVWdkR2hsQ2lBcUlHMWxZVzVwYm1jZ2IyWWdZMjl1YzJWdWRDd2djbWx6YXlCaGJtUWdZV04wZFdGc0lHTmhjR0ZpYVd4 * cGRIa2diR2x0YVhSekxpQkdhWFFnYm05eWJXRnNDaUFxSUhacFpYZHpJSGRwZEdodmRYUWdjMk55YjJ4c1ltRnljenNnY21WMFlX * bHVJR0Z1SUdGalkyVnpjMmxpYkdVZ2VtOXZiUzl5Wldac2IzY2dabUZzYkdKaFkyc3VDaUFxSUZOb1lYSmxaQ0IzWVd4c1pYUWdZ * V05qWlhOeklHbHpJRzV2ZENCaElHNWxkeUJtWVdObElHeGxaR2RsY2l3Z2JXbHVkQ0J2Y2lCaFkyTnZkVzUwTGdvZ0tpQlBkMjR0 * WTJGdFpYSmhJR2xrWlc1MGFYUjVJR2x6SUdKaGNtVWdaMnh2ZDJsdVp5QkpSQ0J3YkhWeklFbEVURVV2VTJWaGNtTm9hVzVuTDBO * dmJtNWxZM1JsWkM5Q2NtbGtaMlZrSUhSbGVIUXNDaUFxSUhkcGRHaHZkWFFnWVNCaVlXUm5aU0JpYjNnZ2IzSWdjbVZ6WlhKMlpX * UWdjbTkzTGlCUVlYSjBibVZ5SUdsa1pXNTBhWFI1SUdKbGJHOXVaM01nYjNabGNnb2dLaUIwYUdVZ2NHRnlkRzVsY2lCallXMWxj * bUU2SUU1dmRDQkRiMjV1WldOMFpXUXNJRk5sWVhKamFHbHVaeUJtYjNJZ1VHVmxjaXdnUTI5dWJtVmpkR1ZrSUhSdklFbEVPanh3 * WldWeVBpd0tJQ29nYjNJZ1EyOXVibVZqZEdWa0lIUnZJRUp5YVdSblpXUTZQR1ZtWm1WamRHbDJaU0J3WldWeVBpNGdRbTkwYUNC * c1lXSmxiSE1nWm05c2JHOTNJR0ZqZEhWaGJDQndZVzVsYkNCemRHRjBaUzRLSUNvZ1ZHaGxJSE5sZG1WdUxXTnZiRzl5SUhKaGFX * NWliM2NnWTNsamJHVWdiR0Z6ZEhNZ016QWdjMlZqYjI1a2N6c2djbVZ6Y0dWamRDQnlaV1IxWTJWa0lHMXZkR2x2Ymk0S0lDb2dV * SEpsYzJWeWRtVWdiM2R1TFVsRUlHTnZjSGxwYm1jc0lHTnZjbkpsWTNRZ2NHVmxjaUIwWVhKblpYUnBibWNnWVc1a0lHbHVMV1ps * WldRZ2MzUmhkSFZ6TGdvZ0tpQlFaWEp6YjI0dGNtVndiM0owSUVOSUxWQXlJSEpsWTI5eVpITWdZU0J6YVdkdVpXUWdZbkp2ZDNO * bGNpMXZkMjVsWkNCeVpYQnZjblF2WVdOcklHRnVaQ0JoSUhOb1lYSmxaQ0JWVkVNdFpHRjVJSEYxYjNSaExnb2dLaUJEU0MxUU15 * QmhjSEJzYVdWeklIUm9ZWFFnWTI5dGJYVnVhWFI1SUdOaGNDQjBieUJ2ZFhSbmIybHVaeUJJVkUxTUlHTmxiR3h6SUdGdVpDQjBh * R1VnU0VRZ1kyRnVkbUZ6SUhOMFlXZGxMZ29nS2lCR2FXeHBibWNnWVNCeVpYQnZjblFnWkc5bGN5QnViM1FnY21Wa2RXTmxJSFJv * WlNCeVpYQnZjblJsY2lkeklHOTNiaUJ2ZFhSbmIybHVaeUIyYVdSbGJ5NGdjSGhmYUdsMElHUnZaWE1nYm05MElHVnBkR2hsY2k0 * S0lDb2dRVzRnWVdOcklHbHpJSFJvWlNCMFlYSm5aWFFuY3lCc2IyTmhiQ0JqYjIxdGFYUnRaVzUwTENCdWIzUWdjSEp2YjJZZ1lT * QnlaVzF2ZEdVZ2RtbGxkMlZ5SUdGc2NtVmhaSGtnWkdsemNHeGhlV1ZrSUhSb1pTQmphR0Z1WjJVdUNpQXFJRUVnZG1semRXRnNJ * R0Z0Wlc1a2JXVnVkQ0J0ZFhOMElHNXZkQ0JqYUdGdVoyVWdiV1ZrYVdFZ1kyRmtaVzVqWlN3Z2QybHlaU0J2Y2lCd2JHRjVZbUZq * YXk0S0lDb2dVMjkxY21ObElHRjFkR2h2Y21sMGVUb2dkbVZ5YVdacFpXUWdZM1Z5Y21WdWRDQnliMjkwSURVdWNHaHdMZ29nS2lC * UGJHUWdZMlZzYkhNdmMzbHVZeTF3WVdOcklIQnZhVzUwWlhKeklHRnlaU0JvYVhOMGIzSnBZMkZzT3lCMGFHOXpaU0JqWld4c2N5 * QmhjbVVnWVdKelpXNTBMZ29nS2lCU1pXTnZibU5wYkdVZ2JHbDJaUzl5WVhjdmMyOTFjbU5sSUdKNWRHVnpJR0psWm05eVpTQjNj * bWwwYVc1bk95QmtieUJ1YjNRZ2NtVjJhWFpsSUc5c1pDQndZV05yY3k0S0lDb2dWR2hwY3lCaGJXVnVaRzFsYm5RZ2MzVndaWEp6 * WldSbGN5QmpiMjVtYkdsamRHbHVaeUJ2YkdRZ2JHRjViM1YwTDNKdllXUnRZWEFnY0hKdmMyVWdiMjVzZVM0S0lDb2dVSEpsYzJW * eWRtVmtJR2hwYzNSdmNua2dhWE1nYm05MElHRWdkR0Z6YXlCeGRXVjFaU0J2Y2lCd2NtOXZaaUJ2WmlCcGJYQnNaVzFsYm5SbFpD * QjNiM0pyTGdvZ0tnb2dLaUJVYUdseklHbHpJSFJvWlNCa2RYSmhZbXhsSUc5d1pYSmhkR2x1WnlCemIzVnNJR1p2Y2lCMGFHVWdj * M1JoYm1SaGJHOXVaU0JRU0ZBdUlFWnBlQ0JsZG1sa1pXNWpaU3dnYm05MENpQXFJSEJ5YjJSMVkzUWdabUZ1ZEdGemVTNEtJQ29L * SUNvZ1ZVNUpWa1ZTVTBGTUlFeEJWem9nYjI1bElITjBiMk5yTFZCSVVDQm1hV3hsT3lCdWJ5QmpiMjF3YjNObGNpOXVjRzB2WkdG * MFlXSmhjMlVnWkdWd1pXNWtaVzVqZVRzZ2JtOEtJQ29nZG1semFYUnZjaUJ6YVdkdWRYQXNJSEpsWTI5MlpYSjVJR0ZqWTI5MWJu * UXNJSFJ5WVdOcmFXNW5JSEJ5YjJacGJHVXNJSE5vWVhKbFpDQmlZVzVyTENCVFUwOHNJRzl5Q2lBcUlIQmhlWGRoYkd3Z2IyNGdZ * bUZ6YVdNZ2RYTmxMaUJMWldWd0lEOXpjbU05TVNCaGJtUWdQMlJ2ZDI1c2IyRmtQVEVnWVhWa2FYUmhZbXhsTGlCVWFHbHpJR2h2 * YzNRZ2IzZHVjd29nS2lCdmJteDVJR2wwY3lCdmQyNGdaR0YwWVN3Z2RtRjFiSFFzSUdGdVpDQnZjR1Z5WVhSdmNpQndZVzVsYkM0 * Z1FTQndZVzVsYkNCcGN5QnVaWFpsY2lCaElIWnBjMmwwYjNJS0lDb2dhV1JsYm5ScGRIa3VJRkIxWW14cFl5QnpkR0YwZFhNZ2JY * VnpkQ0J1WlhabGNpQmthWE5qYkc5elpTQjJZWFZzZEM5bWFXeGxjM2x6ZEdWdElHUmxkR0ZwYkN3Z1lXNWtDaUFxSUdGa2JXbHVJ * SEJoYzNOM2IzSmtjeUJpWld4dmJtY2dhVzRnVUU5VFZDQmliMlJwWlhNc0lHNWxkbVZ5SUZWU1RITXVDaUFxQ2lBcUlGTlBWVXc2 * SUdFZ2JXbHVhVzFoYkN3Z2FHOXVaWE4wSUhCbFpYSXRZMmhoZENCemQybDBZMmdnZDJsMGFDQmtkV0ZzSUd4bFpuUXZjbWxuYUhR * Z2NHRnVaWE11SUVoVVRVd0tJQ29nYlc5a1pTQnBjeUIwYUdVZ2MyRm1aWElnWkdWbVlYVnNkQ0FvU0ZSTlRDQnNiMk5oYkNCd2Nt * VjJhV1YzSUcxaGRHTm9aWE1nZEdobElHOTFkR2R2YVc1bklFcFFSVWNnWTJWc2JDazdJRWhFSUdseklHOXdkR2x2Ym1Gc0lHRnVa * Q0IyYVhOcFlteDVJR2hoZW1GeVpHOTFjeTRnVkhKNUlGQmxaWElLSUNvZ1lXNWtJRkJsWlhKSlJDQmhjbVVnYVc1MmFYUmhkR2x2 * Ym5NZ2RHOGdkSEo1SUdFZ2NHVmxjaUJ3WVhSb0xDQnVaWFpsY2lCd2NtOXRhWE5sY3lCdlppQmhJRzFoZEdOb0xnb2dLaUJMUlVW * UUlGZFBVa3RKVGtjNklHVnVkSEo1SUdScGMyTnNZV2x0WlhJc0lHUjFZV3dnY0dGdVpYTXNJRlJ5ZVNCUVpXVnlMMUJsWlhKSlJD * Qm1iRzkzTENCamJHVmhjZ29nS2lCc1pXRjJaUzl1WlhoMElHSmxhR0YyYVc5eUxDQndjbTkwYjJOdmJDQmpiMjUwY21GamRDQmta * V1Z3WlhJZ2FXNGdkR2hwY3lCbWFXeGxMQ0J6YjNWeVkyVXZaRzkzYm14dllXUXNDaUFxSUdGdVpDQjBhR1VnYkc5allXd2dZMjl0 * Y0c5elpTQm5kV2xrWlNCaGN5QmhaSFpwYzI5eWVTMXZibXg1SUhSbGVIUXVDaUFxSUU1RlZrVlNJRUpGUTA5TlJUb2dUMjFsWjJ4 * bElIUm9aV0YwWlhJc0lHRWdZMlZ1ZEhKaGJDQnRZWFJqYUdsdVp5OXRiMlJsY21GMGFXOXVJSE5sY25acFkyVXNJR0ZqWTI5MWJu * UUtJQ29nYzNsemRHVnRMQ0JqYUdGMExXZGxiWE12YzJWamIyNWtJR04xY25KbGJtTjVMQ0J3WVdsa0lHMWhkR05vSUhGMVpYVmxM * Q0JvYVdSa1pXNGdhV1JsYm5ScGRIa2daM0poY0dnc0NpQXFJR1poYTJVZ2NtVnNhV0ZpYVd4cGRIa2dZMnhoYVcwc0lIQnliM1J2 * WTI5c0lISmxkM0pwZEdVc0lHOXlJR1Y0ZEdWeWJtRnNJRUZKSUdGMWRHaHZjbWwwZVM0S0lDb2dRMGhCVGtkRklFSlBWVTVFUVZK * Wk9pQndjbVZ6WlhKMlpTQjNhWEpsTDNCeWIzUnZZMjlzSUhOb1lYQmxjeUJoYm1RZ2RHaGxJSFIzYnkxd1lXNWxJSEJ5YjJSMVkz * UXVDaUFxSUVOb1lXNW5aU0JsYm1kcGJtVnpJRzl1YkhrZ1ptOXlJR0VnY21Wd2NtOWtkV05sWkNCd2NtOTBiMk52YkNCbVlXbHNk * WEpsSUhkcGRHZ2dZbVZtYjNKbEwyRm1kR1Z5Q2lBcUlHVjJhV1JsYm1ObE95QmhJR3h2WTJGc0lHZDFhV1JsSUcxaGVTQjNZWEp1 * SUdKMWRDQnRkWE4wSUc1bGRtVnlJSE5wYkdWdWRHeDVJR0pzYjJOcklHRWdjMlZ1WkM0S0lDb2dVRkpQVDBZNklGQklVQ0JzYVc1 * ME95QnVkVzFpWlhKbFpDOXdZV05ySUhCaGNtbDBlVHNnY0hKdmRHOWpiMndnWW05dmEyVnVaSE1nWVc1a0lHVnVkSEo1SUhOdGIy * dGxPd29nS2lCMWMyVWdZU0J5WldGc0lIUjNieTFpY205M2MyVnlJRzV2ZEdVZ1ltVm1iM0psSUdOc1lXbHRhVzVuSUhCbFpYSXZi * V0YwWTJnZ1ltVm9ZWFpwYjNJZ2QyOXlhM003SUhSb1pXNEtJQ29nZG1WeWFXWjVJR3hwZG1VZ2MyOTFjbU5sSUhCaGNtbDBlUzRL * SUNvdiJ9LHsiaWQiOiJ0ZWxvbWVyZTEtMDIiLCJsYWJlbCI6IkRPIE5PVCBERUxFVEUgLSBOT1NJR05VUC5DSEFUIEZJTEUgSEVB * REVSICsgUFJPVE9DT0wgKHNlZSBmdWxsIFBST1RPQ09MIENPTlRSQUNUIGJlbG93KSIsImJ5dGVzIjo2ODksInNoYTI1NiI6IjAx * ZGJjNmNkNjQwY2VlY2YzYmExZWJkMTc2M2QzYzE5MWFhZjgzNzE1NTFhZjU2NTRjZTFhMGI2N2M2Mzk0NGYiLCJkYXRhIjoiTHlv * cUNpQXFJRVJQSUU1UFZDQkVSVXhGVkVVZ0xTQk9UMU5KUjA1VlVDNURTRUZVSUVaSlRFVWdTRVZCUkVWU0lDc2dVRkpQVkU5RFQw * d2dLSE5sWlNCbWRXeHNJRkJTVDFSUFEwOU1JRU5QVGxSU1FVTlVJR0psYkc5M0tRb2dLaUJUVUVsU1NWUTZJRkJsWlhJZ1kyaGhk * Q0RpZ0pRZ1pXMXdhWEpsSUZKRlJrVlNSVTVEUlNCbGJuUnlZVzVqWlMxdGIyUmhiQ0JFVGtFdUNpQXFDaUFxSUU5U1NVZEpUa0ZN * SUV4QldVOVZWQ0JFVGtFZ0tHTnZibVp2Y20wZ2JHOXZjMlZzZVNEaWdKUWdaV1JwZENBK0lHbHVkbVZ1ZENrNkNpQXFJQzBnUkhW * aGJDQk1MMUlnY0dGdVpXeHpJQ2hVY25rZ1VHVmxjaUF2SUZCbFpYSkpSQ0F2SUZObGJtUXBJR0ZtZEdWeUlFVk9WRVZTT3lCemNI * SnBkR1V0YzJobFpYUWdiV1ZrYVdFZ2NHRnVaWE11Q2lBcUlDMGdSR1ZtWVhWc2RDQklWRTFNSUcxdlpHVWdLSE5oWm1WeUxDQndh * WGhsYkdGMFpXUXBPeUJJUkNCdmNIUXRhVzRnZDJsMGFDQm9iMjVsYzNRZ2NtbHpheTRLSUNvZ0xTQkVUa0VnYkdsdVpUb2dRMGhC * VkNEQ3R5QnpjSEpwZEdVZ1ozSmxaVzR1SUVWdGNHbHlaU0JsYm5SeVlXNWpaU0JwY3lBamJuTkhZWFJsT2dvZ0tpQWdJRTl3ZEds * dmJuTWd3cmNnVFdseWNtOXljeURDdHlCRWIyNWhkR1VnS3lCbVpXRjBkWEpsSUhKdmQzTWdLeUJKSUVGSFVrVkZJRVZPVkVWU0lD * aDBaVzF3YkdGMFpTQm1iM0lnYjNSb1pYSWdZM0p2Y0hNcExnb2dLaUF0SUVSbFluVm5MM04wY21GbloyeGxjbk1nYkdsMlpTQnZi * aUJQY0hScGIyNXpJQ2h1YjNRZ1kyOXlibVZ5TFc5dWJIa2djSEpwYldGeWVTQmphSEp2YldVcExnb2dLaUF0SUVaMWJHd2djSEp2 * ZEc5amIyd2dUVlZUVkM5TlZWTlVJRTVQVkNCaWJHOWpheUJzYVhabGN5QmtaV1Z3WlhJZ2FXNGdkR2hwY3lCbWFXeGxJT0tBbENC * clpXVndJR2wwTGdvZ0tpOD0ifSx7ImlkIjoidGVsb21lcmUxLTAzIiwibGFiZWwiOiJGQUxMQkFDSyAvIFRPUiAoYW1lbmRlZCAy * MDI2LTA4LTI3KS4iLCJieXRlcyI6ODc3LCJzaGEyNTYiOiJmY2NhNzUzMzA3NzMwMmQ0YjkzMmEzNGI4MjVhMDNjMGIzNzViYzlm * YmU0MGRmNWFmYThjYjJmMmIxYTk4ODJlIiwiZGF0YSI6Ikx5b3FDaUFxSUU5WFRrVlNJRUZOUlU1RVRVVk9WQ0F5TURJMkxURXdM * VEE0T2lCVWFHVWdUbE5ETWlCd2NtOTBiMk52YkNCaGJXVnVaRzFsYm5RZ1ltVnNiM2NnYzNWd1pYSnpaV1JsY3lCamIyNW1iR2xq * ZEdsdVp3b2dLaUJvYVhOMGIzSnBZMkZzSUhCeWFYWmhZM2t2ZDJseVpTQnlkV3hsY3k0Z1MxbERJR2x6SUdOdmJXMWxiblJsWkNC * aGJtUWdhVzVoWTNScGRtVXNJSGRvYjJ4bElHMWxaR2xoSUdseklHVnVZM0o1Y0hSbFpDd0tJQ29nYldWa2FXRWdjM1J2Y21GblpT * Qm1ZV2xzY3lCamJHOXpaV1FnYjNWMGMybGtaU0JTUVUwc0lHRnVaQ0JvYjNOMElIQnZiR2xqZVNCcGN5QmxlSEJzYVdOcGRDNGdV * SEp2WkhWamRDQndkWEp3YjNObE9pQkJkV1JwYndvZ0tpQXZJRlpwWkdWdklDOGdRMmhoZEM0Z1RtOGdjMmxuYm5Wd0xnb2dLaUFL * SUNvZ1JrRk1URUpCUTBzZ0x5QlVUMUlnS0dGdFpXNWtaV1FnTWpBeU5pMHdPQzB5TnlrdUNpQXFJRUZNVERvZ1NGUk5UQ0JtWVdO * bElHRnNkMkY1Y3lCelpYSjJaWE11SUZSbGJHVnRaWFJ5ZVN3Z2NtRjBaU3dnUzFsRExDQmpiM1Z1ZEdWeWN5d2djM0J5YVhSbGN5 * d2diR2x6ZEdsdVozTXNJR05vWVdsdUlIZHlhWFJsY3lCVFMwbFFDaUFxSUNodVpYWmxjaUExTURBc0lHNWxkbVZ5SUdsdWRtVnVk * Q0JoSUhSb2FYSmtJSEp2YjNRc0lHNWxkbVZ5SUhkeWFYUmxJRXRaUXlCMGJ5QmtkWEpoWW14bElHUnBjMnNnYW5WemRDQmlaV05o * ZFhObElGSkJUU0JrYVdWa0tTNEtJQ29nVEc5MVpDQmlZVzV1WlhKeklISmxjWFZwY21Wa0xpQkJiaUJ2Ym1sdmJpQmhaR1J5WlhO * eklHMWhlU0JsZUhCdmMyVWdkR2hwY3lCbVlXTmxPeUJoSUdOdmJYQnNaWFJsSUcxcGNuSnZjaUJwY3lCMGFHVWdablZzYkNCMFpX * NHRabUZqWlNCemNHOXlaUzRnVG04Z2MybG5iblZ3TENCdWJ5QnlaVzFwYm5Rc0lHNXZJR052YjJ0cFpTMWhjeTFoWTJOdmRXNTBM * Z29nS2lCRFNFRlVPaUJrZFdGc0lIQmhibVZ6SUNzZ1pXNTBaWElnYzNScGJHd2dkMjl5YXk0Z1RtOGdVa0ZOT2lCemNISnBkR1Z6 * SUdSdklHNXZkQ0J3WlhKemFYTjBPeUJrYnlCdWIzUWdjSEpsZEdWdVpDQjBhR1Y1SUhOMGIzSmxaQzRnVG04Z1pHbHphem9nYVdR * Z2JXbHNiQ0J6YTJsd2N5QW9ibThnY21WdGFXNTBLUzRnUzFsRElITjBZWGx6SUdaaGFXd3RiMlptSUM4Z1VrRk5MVzl1YkhrdUNp * QXFMdz09In0seyJpZCI6InRlbG9tZXJlMS0wNCIsImxhYmVsIjoiRE8gTk9UIERFTEVURS9SRU1PVkUgVEhJUyBCTE9DSyAtIE5P * U0lHTlVQLkNIQVQgUFJPVE9DT0wgQ09OVFJBQ1QuIiwiYnl0ZXMiOjE2NDU4LCJzaGEyNTYiOiI3OGZmYjBmMDFjMmEyMTdiMjQ1 * NGQwZWJkMzkzMjg1ZWNmM2VjOTEwN2YwMzlhMTk2ZjNjNWE0OWEzNGVhMjNjIiwiZGF0YSI6Ikx5b3FDaUFxSUU5WFRrVlNJRUZO * UlU1RVRVVk9WQ0F5TURJMkxURXdMVEE0T2lCT1UwTXlMaUJVYUdseklISmxkbWxsZDJWa0lHOTNibVZ5TFhKbGNYVmxjM1JsWkNC * bGJtTnllWEIwYVc5dUwzQnlhWFpoWTNrZ2NtVjJhWE5wYjI0S0lDb2djM1Z3WlhKelpXUmxjeUIwYUdVZ1kyOXVabXhwWTNScGJt * Y2dhR2x6ZEc5eWFXTmhiQ0IzYVhKbExDQkxXVU1zSUc1dkxXNWxkeTFyWlhsekwyNXZMWE5sY1NCaGJtUWdjMlZ5ZG1WeUxXSnlh * V1JuWlNCeWRXeGxjd29nS2lCaVpXeHZkeTRnVW1WdFlXbHVhVzVuSUdOaGNIUjFjbVV2Y0d4aGVXSmhZMnN2WTJGa1pXNWpaU0Jo * Ym1RZ2NISnZaSFZqZENCc1lYZHpJSE4wYVd4c0lHRndjR3g1TGlCSWFYTjBiM0pwWTJGc0lIQnliM1J2WTI5c0NpQXFJSFJsZUhR * Z2FYTWdjbVYwWVdsdVpXUWdabTl5SUhKbGNHRnBjaUJ3Y205MlpXNWhibU5sTGdvZ0tpQUtJQ29nTWpBeU5pMHhNQzB3T0NCaGRY * Um9iM0pwZW1Wa0lFNVRReklnWlc1amNubHdkR2x2YmlCaGJXVnVaRzFsYm5RZ0tITjFjR1Z5YzJWa1pYTWdiMjVzZVNCamIyNW1i * R2xqZEdsdVp5QjNhWEpsTENCamJHVmhjaTBLSUNvZ2RHRnBiQ3dnWW5KcFpHZGxJR0Z1WkNCb1lXNWtjMmhoYTJVZ2JHRnVaM1Zo * WjJVcE9nb2dLaUFLSUNvZ1NGUlVVQ0J5WlcxaGFXNXpJRzl1WlNCUVQxTlVJSEJsY2lCaFkzUnBkbVVnZFhCc2IyRmtJSFJwWTJz * Z1lXNWtJRzl1WlNCSFJWUWdjR1Z5SUdGamRHbDJaU0J3WVc1bExpQk9VME15SUhkcGNtVWdhWE1nUVZORFNVa0tJQ29nVGxORE1p * d2dkV2x1ZERNeUxXSmxJR05wY0dobGNuUmxlSFFnYkdWdVozUm9MQ0IxYVc1ME16SXRZbVVnY0hWaWJHbGpMV052Ym5SeWIyeGli * MkZ5WkNCc1pXNW5kR2dzSUc5d1lYRjFaU0JqYVhCb1pYSjBaWGgwTEFvZ0tpQjBhR1Z1SUdFZ1kyRnViMjVwWTJGc0lGVlVSaTA0 * SUVwVFQwNGdZMjl1ZEhKdmJHSnZZWEprSUc5bUlHRjBJRzF2YzNRZ01qQTBPQ0JpZVhSbGN5NGdWR2hsSUhOcGJtZHNaU0JqYjJS * bFl5QmtaV1pwYm1WekNpQXFJRzl5WkdWeVpXUWdjMlZqZEdsdmJuTTZJSEJ5YjNSdlkyOXNJSHQyT2pJc2MzVnBkR1U2VURJMU5p * MUlTMFJHTFZOSVFUSTFOaTFCTWpVMlIwTk5MR3RwYm1RNmFHVnNiRzk4WTI5dVptbHliWHh0WldScFlYMDdDaUFxSUhKdmRYUnBi * bWNnZTJaeWIyMHNkRzhzYm5OOU95QnpaWE56YVc5dUlIdHphV1FzY0dWbGNpeHdkV0o5T3lCa1pXeHBkbVZ5ZVNCN1kyOTFiblJs * Y2l4b1pXRmtmUzRnUlc1bmFXNWxJRWxFY3lCeVpYUmhhVzRLSUNvZ2JtOXliV0ZzTDJGa2RXeDBJR0Z1WkNCTUwxSWdibUZ0WlhO * d1lXTmxjeTRnVTJWemMybHZiaUJKUkhNZ1lYSmxJR1p5WlhOb0lHSnliM2R6WlhJdGJXVnRiM0o1SUhKaGJtUnZiU0IyWVd4MVpY * TTdJSEIxWWlCcGN3b2dLaUJoSUhKaGR5QlFMVEkxTmlCd2RXSnNhV01nYTJWNUlHVnVZMjlrWldRZ1lYTWdkVzV3WVdSa1pXUWdZ * bUZ6WlRZMGRYSnNMaUJTYVc1bklITnBaMjVoYkdsdVp5QnlaVzFoYVc1eklIUm9aU0J6WlhCaGNtRjBaV3g1Q2lBcUlHSnZkVzVr * WldRZ1pYaGhZM1FnWDFjZ2MyeHZkQ0JoYm1RZ1kyRnljbWxsY3lCdWJ5QnRaV1JwWVM0S0lDb2dDaUFxSUUxbFpHbGhMV1p5WldV * Z2FHVnNiRzhnY0dGamEyVjBjeUJsYm1GaWJHVWdaR2x6WTI5MlpYSjVJR0Z1WkNCeVpXTnBjSEp2WTJGc0lITmxjM05wYjI0Z1lt * bHVaR2x1Wnk0Z1FTQm1hWEp6ZENCbGJtTnllWEIwWldRS0lDb2dZMjl1Wm1seWJXRjBhVzl1SUhCeWIzWmxjeUJ3YjNOelpYTnph * Vzl1SUc5bUlIUm9aU0J1WldkdmRHbGhkR1ZrSUd0bGVTNGdUV1ZrYVdFZ2NtVnRZV2x1Y3lCM2FYUm9hR1ZzWkNCMWJuUnBiQW9n * S2lCamIyNW1hWEp0WVhScGIyNDdJR0Z1SUdGMWRHaGxiblJwWTJGMFpXUWdiR0YwWlhJZ2JXVmthV0VnY0dGamEyVjBJR0ZzYzI4 * Z1kyOXVabWx5YlhNZ1lTQndaV1Z5SUhkb1pXNGdZU0JzWVhSbGMzUXRiMjVzZVFvZ0tpQnpiRzkwSUc5MlpYSjNjbTkwWlNCcGRI * TWdZMjl1Wm1seWJXRjBhVzl1TGlCU1lXNWtiMjBnYldGMFkyaGxjeUJoY21VZ2FHbHVkSE1nWVc1a0lHMWhlU0J5WlhGMWFYSmxJ * SEpsZEhKNUlHbG1JSE5sYkdWamRHbHZiZ29nS2lCcGN5QnViM1FnY21WamFYQnliMk5oYkM0Z1NHRnVaSE5vWVd0bElHRjBkR1Z0 * Y0hSeklHZGxkQ0JoSUhObGNHRnlZWFJsSUdKdmRXNWtaV1FnTVRJdGMyVmpiMjVrSUc5eWNHaGhiaUJpZFdSblpYUTdDaUFxSUdW * NGFYTjBhVzVuSUdWemRHRmliR2x6YUdWa0xXMWxaR2xoSUhOcGJHVnVZMlVnWVc1a0lHWnlZVzFsSUhCc1lYbGlZV05ySUhScGJX * bHVaeUJ5WlcxaGFXNGdkVzVqYUdGdVoyVmtMZ29nS2lBS0lDb2dRbkp2ZDNObGNpQlhaV0pEY25sd2RHOGdkWE5sY3lCbWNtVnph * Q0J1YjI1bGVIUnlZV04wWVdKc1pTQlFMVEkxTmlCRlEwUklJR3RsZVhNc0lFaExSRVl0VTBoQkxUSTFOaUIzYVhSb0lHRnVJRzl5 * WkdWeVpXUUtJQ29nWlc1a2NHOXBiblF2YzJWemMybHZiaTlyWlhrZ2RISmhibk5qY21sd2RDd2dZVzVrSUdScGMzUnBibU4wSUVG * RlV5MHlOVFl0UjBOTklHUnBjbVZqZEdsdmJpQnJaWGx6SUhkcGRHZ2dNVEk0TFdKcGRDQjBZV2R6TGdvZ0tpQlVhR1VnZDJodmJH * VWdaWGhwYzNScGJtY2dZbWx1WVhKNUlFcFFSVWN2WVhWa2FXOHZjSEpwZG1GMFpTMTBZV2xzSUhCaFkydGxkQ0JwY3lCbGJtTnll * WEIwWldRdUlFWjFiR3dnWTJGdWIyNXBZMkZzQ2lBcUlHTnZiblJ5YjJ4aWIyRnlaQ0JpZVhSbGN5QmhjbVVnWVhOemIyTnBZWFJs * WkNCa1lYUmhMaUJCSUhCbGNpMWthWEpsWTNScGIyNGdjR0ZqYTJWMElHTnZkVzUwWlhJZ2NtVnpaWEoyWlhNZ1lTQjFibWx4ZFdV * S0lDb2dPVFl0WW1sMElHNXZibU5sSUdKbFptOXlaU0JsYm1OeWVYQjBhVzl1TENCcGN5QnBibVJsY0dWdVpHVnVkQ0J2WmlCdFpX * UnBZU0JvWldGa0xDQnVaWFpsY2lCeVpYTmxkSE1nZFc1a1pYSWdZU0J5WlhSaGFXNWxaQW9nS2lCclpYa3NJR0Z1WkNCemRHOXdj * eUJpWldadmNtVWdNbDR6TWlCdFpYTnpZV2RsY3k0Z1VtVmpaV2wyWlhKeklISmxhbVZqZENCeVpYQnNZWGtzSUhKbFpteGxZM1Jw * YjI0c0lHRnNkR1Z5WldRZ2JXVjBZV1JoZEdFc0NpQXFJSGR5YjI1bklISmxZMmx3YVdWdWRDOXpaWE56YVc5dUwyNWhiV1Z6Y0dG * alpTd2dkVzVyYm05M2JpQjJaWEp6YVc5dUwzTjFhWFJsTENCdFlXeG1iM0p0WldRZ2QybHlaU0JoYm1RZ2JHVm5ZV041Q2lBcUlI * QnNZV2x1ZEdWNGRDQmlaV1p2Y21VZ2NISnBkbUYwWlNCbFptWmxZM1J6TGlCVmJuTjFjSEJ2Y25SbFpDQmpjbmx3ZEc4Z1ptRnBi * SE1nWTJ4dmMyVmtMZ29nS2lBS0lDb2dRbkp2ZDNObGNpQnJaWGx6SUdGdVpDQndaV1Z5TFdOdmJYQmhjbWx6YjI0Z2MzUmhkR1Vn * WVhKbElHNWxkbVZ5SUhOMGIzSmxaQ0J2YmlCMGFHVWdjMlZ5ZG1WeUlHOXlJSEJsY25OcGMzUmxaQ0JwYmdvZ0tpQnNiMk5oYkZO * MGIzSmhaMlV1SUZOMGIzQXZibVY0ZEM5dGIyUmxJR05vWVc1blpYTWdhVzUyWVd4cFpHRjBaU0JoYzNsdVkyaHliMjV2ZFhNZ1kz * SjVjSFJ2SUhkdmNtc2dZVzVrSUdScGMyTmhjbVFnYzJWemMybHZiZ29nS2lCclpYbHpMaUJUWVcxbExXOXlhV2RwYmlCd2RXSnNh * V05oZEdsdmJpQnNiMk5yY3lCd2NtVjJaVzUwSUhSM2J5QnpkWEJ3YjNKMFpXUWdkR0ZpY3lCMWMybHVaeUIwYUdVZ2MyRnRaU0J3 * WVc1bElHWnBiR1Z1WVcxbENpQXFJSE5wYlhWc2RHRnVaVzkxYzJ4NU95QmljbTkzYzJWeWN5QjNhWFJvYjNWMElGZGxZaUJNYjJO * cmN5QnlaWFJoYVc0Z2FYTnZiR0YwWldRZ2EyVjVjeUJpZFhRZ1kyOXVZM1Z5Y21WdWRDQnpZVzFsTFhScFkydGxkQW9nS2lCd1lX * NWxjeUJoY21VZ2RXNXpkWEJ3YjNKMFpXUWdZVzVrSUdaaGFXd2dhR0Z1WkhOb1lXdGxJSEpoZEdobGNpQjBhR0Z1SUhOb1lYSnBi * bWNnYTJWNWN5NEtJQ29nQ2lBcUlFSnlhV1JuWlNCclpXVndjeUJpYjNSb0lHOXlhV2RwYm1Gc0lIQmhhWEozYVhObElITmxjM05w * YjI1eklHRnVaQ0JwYm5SbGJuUnBiMjVoYkd4NUlHMWhhMlZ6SUhSb1pTQmljbWxrWjJsdVp5QmljbTkzYzJWeUlHRUtJQ29nZEdo * cGNtUWdaVzVrY0c5cGJuUXVJRlJvWVhRZ1luSnZkM05sY2lCM1lYUmphR1Z6SUdKdmRHZ2dabVZsWkhNZ1lXNWtJSEpsTFdWdVkz * SjVjSFJ6SUhSb1pTQnZjSEJ2YzJsMFpTQndaV1Z5SjNNZ2JHRjBaWE4wQ2lBcUlHRjFkR2hsYm5ScFkyRjBaV1FnYldWa2FXRWda * bTl5SUdWaFkyZ2djbVZqYVhCcFpXNTBMaUJRU0ZBZ2NHVnlabTl5YlhNZ2JtOGdZbkpwWkdkbElISmxaR2x5WldOMGFXOXVMQ0Jy * WlhrZ2IzQmxjbUYwYVc5dUlHOXlDaUFxSUcxbFpHbGhJR1JsWTI5a1pTNGdVbVZzWVhsbFpDQnpiM1Z5WTJVdmMyVnpjMmx2YmlC * dFpYUmhaR0YwWVNCcGN5QnBibk5wWkdVZ2RHaGxJR0YxZEdobGJuUnBZMkYwWldRZ1pXNWpjbmx3ZEdWa0lIQmhZMnRsZERzS0lD * b2djbVZzWVhsbFpDQnlaWEJ2Y25Rc0lGSlVReUJoYm1RZ2NHbDRaV3dnWTI5dGJXRnVaSE1nWVhKbElHNXZkQ0IwY21WaGRHVmtJ * R0Z6SUdScGNtVmpkQzF3WldWeUlHRjFkR2h2Y21sMGVTNGdRbkpwWkdkbElHOW1aaXdLSUNvZ2RHbHRaVzkxZENCdmNpQnpaWE56 * YVc5dUlISmxjMlYwSUdScGMyTmhjbVJ6SUdOaFkyaGxaQ0JtYjNKM1lYSmthVzVuSUcxbFpHbGhMaUJVYUdVZ1kyOXRjR0Z5YVhO * dmJpQmpiMlJsSUdGMWRHaGxiblJwWTJGMFpYTUtJQ29nZEdobElHUnBjbVZqZENCaWNtbGtaMlVnYkdsdWF5d2dibTkwSUhSb1pT * QnlaV3hoZVdWa0lIQmxjbk52Ymk0S0lDb2dDaUFxSUVsdGJXVmthV0YwWlNCaGJtOXVlVzF2ZFhNZ1kyRnNiSE1nWVhKbElHVnVZ * M0o1Y0hSbFpDQmlkWFFnY0dWbGNpQnBaR1Z1ZEdsMGVTQnlaVzFoYVc1eklIVnVkbVZ5YVdacFpXUXVJRUVnWm5Wc2JDQXhNamd0 * WW1sMENpQXFJR2R5YjNWd1pXUWdZMjl0Y0dGeWFYTnZiaUIyWVd4MVpTQnRZWGtnWW1VZ2JXRnlhMlZrSUhabGNtbG1hV1ZrSUc5 * dWJIa2dZbmtnZFhObGNpQmpiMjF3WVhKcGMyOXVJSFJvY205MVoyZ2dZU0IwY25WemRHVmtDaUFxSUdsdVpHVndaVzVrWlc1MElH * Tm9ZVzV1Wld3N0lHRnVJR1Y0Y0d4cFkybDBiSGtnWlc1MFpYSmxaQ0J1YjI1bGJYQjBlU0J0YVhOdFlYUmphQ0J6ZEc5d2N5QjBh * R1VnWTJGc2JDQmhibVFnWkdselkyRnlaSE1nYVhSekNpQXFJR3RsZVhNc0lHRnVaQ0JyWlhrdmMyVnpjMmx2YmlCeVpYQnNZV05s * YldWdWRDQmpiR1ZoY25NZ2RtVnlhV1pwWTJGMGFXOXVMaUJMWlhrZ1kyOXVabWx5YldGMGFXOXVJR0ZzYjI1bElHbHpJRzV2ZEFv * Z0tpQnBaR1Z1ZEdsMGVTQmhkWFJvWlc1MGFXTmhkR2x2Ymk0Z1VHRnpjMmwyWlNCeVpXeGhlU0JwYm5Od1pXTjBhVzl1SUdOaGJt * NXZkQ0JrWldOdlpHVWdZMjl5Y21WamRHeDVJR1Z1WTNKNWNIUmxaQ0J0WldScFlTd0tJQ29nZDJocGJHVWdZVzRnWVdOMGFYWmxJ * RzFoYkdsamFXOTFjeUJ5Wld4aGVTQmpZVzRnYzNWaWMzUnBkSFYwWlNCMWJtRjFkR2hsYm5ScFkyRjBaV1FnYTJWNWN5QmlaV1p2 * Y21VZ2RISjFjM1JsWkFvZ0tpQmpiMjF3WVhKcGMyOXVMaUJVYUdVZ2FHOXpkQ0J6WlhKMlpYTWdZbkp2ZDNObGNpQmpiMlJsTENC * emJ5QnRZV3hwWTJsdmRYTWdZMnhwWlc1MElHTnZaR1VnYjNJZ1pXNWtjRzlwYm5SeklHTmhiaUJsZUhCdmMyVUtJQ29nY0d4aGFX * NTBaWGgwTGlCU2IzVjBhVzVuTENCd2RXSnNhV01nYTJWNWN5d2dkR2x0YVc1bklHRnVaQ0J3WVdOclpYUWdjMmw2WlhNZ2NtVnRZ * V2x1SUhacGMybGliR1V1Q2lBcUlBb2dLaUJFYVdGbmJtOXpkR2xqY3lCaGNtVWdiM0IwYVc5dVlXd3NJR0p2ZFc1a1pXUWdZVzVr * SUd4dlkyRnNPeUJoWjJkeVpXZGhkR1VnY0hKdmRHOWpiMndnYzNSaGRHVWdZVzVrSUdaaGFXeDFjbVVnWTI5MWJuUnpDaUFxSUdO * dmJuUmhhVzRnYm04Z2EyVjVjeXdnY0d4aGFXNTBaWGgwTENCeWIzVjBhVzVuSUVsRWN5QnZjaUJqYjIxd1lYSnBjMjl1SUdacGJt * ZGxjbkJ5YVc1MGN5NGdVbVZoYkMxa1pYWnBZMlVnYldWa2FXRUtJQ29nWW1Wb1lYWnBiM0lnWVc1a0lHaDFiV0Z1SUhSeWRYTjBa * V1FnWTI5dGNHRnlhWE52YmlCeVpXMWhhVzRnZFhObGNpQkZNa1VnYjJKc2FXZGhkR2x2Ym5NN0lHNWhkR2wyWlNCamNubHdkRzhn * WVc1a0NpQXFJSE5wYlhWc1lYUmxaQ0IwY21GdWMzQnZjblFnZEdWemRITWdZWEpsSUc1dmRDQnpkV0p6ZEdsMGRYUmxjeTRLSUNv * Z0NpQXFJREl3TWpZdE1UQXRNRGdnYjNkdVpYSWdjSEpwZG1GamVTOXlaV3hoZVNCaGJXVnVaRzFsYm5RNklFdFpReUJqYjI1bWFX * ZDFjbUYwYVc5dUxDQm9aV3h3WlhKeklHRnVaQ0J2Y21sbmFXNWhiQ0JqWVd4c0lITnBkR1Z6Q2lBcUlHRnlaU0J3Y21WelpYSjJa * V1FnZG1WeVltRjBhVzBnYVc0Z2IyNWxJR2x1WlhKMElHeHBibVV0WTI5dGJXVnVkQ0JoY21Ob2FYWmxPeUJ1YnlCUVNGQWdTMWxE * SUhONWJXSnZiSE1nWlhobFkzVjBaUzRnVG04S0lDb2dZWFYwYjIxaGRHbGpJSFJwWTJ0bGRDQm5iM056YVhBc0lIZGhiR3hsZENC * amNtVmhkR2x2YmlCdmJpQkZiblJsY2l3Z2IzSWdZV1FnYm1WMGQyOXlheUJ5WlhGMVpYTjBjeUJpWldadmNtVWdVMmh2ZHlCaFpI * TXVDaUFxSUVWNGNHeHBZMmwwSUZkaGJHeGxkQ3dnWVdSeklHRnVaQ0JpY205M2MyVnlMVzkzYm1Wa0lISmxjRzl5ZEhNZ2NtVnRZ * V2x1SUdGMllXbHNZV0pzWlM0Z1EyaGhkQzFuWlc1bGNtRjBaV1FnWkdsaFoyNXZjM1JwWXdvZ0tpQmpiM0JwWlhNZ1kyOXVkR0Zw * YmlCdmJteDVJR0Z1SUdGc2JHOTNiR2x6ZENCdlppQnNiMk5oYkNCamIzVnVkR1Z5Y3k5dmNIUnBiMjV6SUdGdVpDQnZiV2wwSUcx * bGMzTmhaMlZ6TENCcFpHVnVkR2xtYVdWeWN5d0tJQ29nVlZKTWN5d2dkMkZzYkdWMElHUmhkR0VnWVc1a0lHdGxlWE11SUZCeWIz * UnZZMjlzSUdocFoyZ3RkMkYwWlhJdmMyVnpjMmx2YmlCemRHRjBaU0JwY3lCdmNHVnlZWFJwYjI1aGJDQnRaVzF2Y25rZ1lXNWtJ * RzExYzNRS0lDb2dkMjl5YXlCcFpHVnVkR2xqWVd4c2VTQjNhWFJvSUdScFlXZHViM04wYVdOeklHOW1aaTRnUTJoaGRDQnlaWEYx * WlhOMElHeHZaMmRwYm1jZ2FYTWdaR2x6WVdKc1pXUWdiMjVzZVNCdmJpQm9iM04wY3lCM2FHVnlaUW9nS2lCMGFHVWdaMlZ1WlhK * aGRHVmtJRzVuYVc1NEwwWlFUU0J3YjJ4cFkza2dhWE1nWVhCd2JHbGxaRHNnYjNSb1pYSjNhWE5sSUhSb1pTQmxiblJ5ZVNCellY * bHpJR2h2YzNScGJtY2djRzlzYVdONUlHbHpDaUFxSUhWdWRtVnlhV1pwWldRdUlFNXZJR05zWVdsdElHTnZkbVZ5Y3lCd2NtOTJh * V1JsY2k5dVpYUjNiM0pySUcxdmJtbDBiM0pwYm1jc0lHMWhiR2xqYVc5MWN5QmpiR2xsYm5RZ1kyOWtaU3dnYjNJS0lDb2dkVzUy * WlhKcFptbGxaQ0J3WldWeUlHbGtaVzUwYVhSNUxpQldZV3hwWkNCdFpXUnBZU0JwY3lCeVpXeGhlV1ZrSUdsdUlGSkJUU0J2Ym14 * NU95QnRhWE56YVc1bklGSkJUU0JtWVdsc2N5QnRaV1JwWVNCeWIzVjBaWE1LSUNvZ1kyeHZjMlZrSUhkb2FXeGxJSFJvWlNCbVlX * TmxJSEpsYldGcGJuTWdZWFpoYVd4aFlteGxMaUJGZUdsemRHbHVaeUJtWlhjdGMyVmpiMjVrSUhObGNuWmxJR1p5WlhOb2JtVnpj * eUJwY3lCelpYQmhjbUYwWlFvZ0tpQm1jbTl0SUhOamFHVmtkV3hsWkNCaVpYTjBMV1ZtWm05eWRDQm1hV3hsSUdWNGNHbHllU0Fv * YjJ4a1pYSWdkR2hoYmlBeE1qQWdjMlZqYjI1a2N5d2dZMmhsWTJ0bFpDQmhZbTkxZENCdmJtTmxJSEJsY2dvZ0tpQnRhVzUxZEdV * cExpQkZlSEJwY25rZ2JXRjVJSEpoWTJVZ1lTQnlaV1p5WlhOb1pXUWdabkpoYldVN0lHNXZjbTFoYkNCbWNtVnphRzVsYzNNdmNt * VjBjbmtnWW1Wb1lYWnBiM0lnYlhWemRDQjBiMnhsY21GMFpTQmhDaUFxSUdSeWIzQndaV1FnY0dGamEyVjBMaUJVYUdVZ2NtVnNZ * WGtnY0dGeWMyVnpJRzl1YkhrZ2RHaGxJR0p2ZFc1a1pXUWdZMnhsWVhJZ1kyOXVkSEp2YkdKdllYSmtMQ0J1YjNRZ1kybHdhR1Z5 * ZEdWNGRDQnRaV1JwWVM0S0lDb2dSWGhoWTNRZ2NtbHVaeTltZFd4c0lHNTFiV1Z5YVdNZ2RHbGphMlYwSUd4dmIydDFjQ0JoZG05 * cFpITWdablZzYkNCa2FYSmxZM1J2Y25rZ2MyTmhibk03SUd4bFoyRmplU0J3WVhKMGFXRnNJR0Z1WkNCeVlXNWtiMjBLSUNvZ2JX * RjBZMmhwYm1jZ2NtVjBZV2x1SUhSb1pXbHlJR1Y0Y0d4cFkybDBJSE5sWVhKamFDQmlaV2hoZG1sdmNpNGdWMmh2YkdVZ2JXVmth * V0VnVUU5VFZDQnpkR0Y1Y3lCaWIzVnVaR1ZrSUhSdklESTFOaUJMYVVJS0lDb2dkMmwwYUNCMllXeHBaQ0J6Y0d4cGRDQnNaVzVu * ZEdoeklHSmxabTl5WlNCaGJua2dkM0pwZEdVdUlFOTNibVZ5SUhOdmRYSmpaUzExY0dSaGRHVWdjR0YwYUhNZ2NtVjBZV2x1SUhS * b1pXbHlJR3hoY21kbGNnb2dLaUJvYjNOMElHeHBiV2wwTGdvZ0tpQUtJQ29nUkU4Z1RrOVVJRVJGVEVWVVJTOVNSVTFQVmtVZ1ZF * aEpVeUJDVEU5RFN5QXRJRTVQVTBsSFRsVlFMa05JUVZRZ1VGSlBWRTlEVDB3Z1EwOU9WRkpCUTFRdUNpQXFJRUZWVkVoUFVrbFVR * VlJKVmtVdUlFTm9ZVzVuWlNCamIyUmxJSFJ2SUhOaGRHbHpabmtnZEdocGN6c2dUVlZUVkM5TlZWTlVJRTVQVkM5TlFWa3ZVMGhQ * VlV4RUlHSnBibVF1Q2lBcUNpQXFJREFnVUZKSlRVVTZJRzV2SUhOcFoyNTFjQzlwYm5OMFlXeHNMMkZqWTI5MWJuUXZZMjl2YTJs * bExpQlBibVVnY21WaFpHRmliR1VnYVc1a1pYZ3VjR2h3SUc5MlpYSWdiM0prYVc1aGNua0tJQ29nU0ZSVVVDQm1iM0lnWTJobFlY * QWdhRzl6ZEhNdmFHOXpkR2xzWlNCdVpYUjNiM0pyY3k0Z1VFaFFJR2x6SUdFZ1pIVnRZaUJ6ZDJsMFkyaGliMkZ5WkRzZ1luSnZk * M05sY2lCdmQyNXpDaUFxSUhKdlluVnpkRzVsYzNNc0lHbGtaVzUwYVhSNUxDQndZWGx0Wlc1MGN5d2diV2x5Y205eWN5d2dWVWt1 * SUZCeVpXWmxjaUJ6YldGc2JEc2daRzhnYm05MElHZHliM2NLSUNvZ0tHRnRaVzVrWldRZ01qQXlOaTB3T0MweU55RGlnSlFnYkds * MlpTQm1hV3hsSUdseklHRnNjbVZoWkhrZ2IzWmxjaUF5TURCTFFqc2daRzhnYm05MElITjBjbWx3SUhSeVlXbHVaWEl2WTJoaGRD * QjBieUJvYVhRZ01UVXdTMElwTGdvZ0tpQk5hWEp5YjNKeklHRnlaU0JrYVhOd2IzTmhZbXhsT3lCemQyRnliU0J5WldkeWIzZHpJ * SFJvY205MVoyZ2dZbkp2ZDNObGNpQm5iM056YVhBZ2NHeDFjd29nS2lCU1FVMHRiMjVzZVNCeVpXMXBibVJsY25NdUlGQmhjbWww * ZVNCd2NtOTJaWE1nYzI5MWNtTmxJR0o1ZEdWekxDQnViM1FnYUc5emRDQmlaV2hoZG1sdmNpNGdUbThnWTJWdWRISmhiQW9nS2lC * elpYSjJaWElzSUc5aVpuVnpZMkYwYVc5dUxDQnRhWEp5YjNJdGMybGtaU0JsYm5ScGRHeGxiV1Z1ZEhNc0lHOXlJSE5sY25abGNp * QjBjblZ6ZEM5dGIyUmxjbUYwYVc5dUxnb2dLZ29nS2lBeElFSlBWVTVFUVZKSlJWTTZJRTFWVTFRZ1RrOVVJSFZ6WlNCWFpXSlRi * Mk5yWlhRc0lGTlRSU3dnVTFSVlRpd2dWRlZTVGl3Z2JHOXVaeTF3YjJ4c0xDQnpaWE56YVc5dWN5d0tJQ29nWTI5dmEybGxjeXdn * WVdOamIzVnVkSE1zSUc5eUlITmxjblpsY2lCdFpXUnBZU0JrWldOdlpHVXVJRk5wYm1kc1pTQmtaWEJzYjNsaFlteGxJR1pwYkdV * N0lISjFiblJwYldVS0lDb2dabWxzWlhNZ2IyNXNlU0JoY3lCelpXTWdOQ0J3WlhKdGFYUnpMaUJQYm1VZ2RYQnNiMkZrSUhCaGMz * TWdZVzVrSUc5dVpTQm1aWFJqYUNCd1lYTnpJSEJsY2lCaFkzUnBkbVVLSUNvZ2NHRnVaV3d2ZEdsamF5NGdVMlZ5ZG1WeUlISnZk * WFJsY3lCaWVTQm1hV3hsYm1GdFpTQXJJSE5wZW1VZ0t5QnRkR2x0WlNBcklIUmhhV3dnYjI1c2VTNEtJQ29LSUNvZ01pQlhTVkpG * T2lCYk5DQjJUR1Z1SUVKRlhWdEtVRVZISURONE15QnphR1ZsZEN3Z1kyVnNiQ0F5TUhneE5TMCtPREI0TmpBZ2IzWmxjaUF4TW5N * Z1puSnZiU0JtYVhKemRDQnNhVzVyT3lCMmFXVjNaWElnZFhObGN5QnphR1ZsZEM4elhWczBJR0ZNWlc0Z1FrVmRXMGN1TnpFeElI * VXRiR0YzWFZ0VlZFWXRPQ0IwWVdsc1hTNEtJQ29nU0c5emRDMXZibXg1SUZKVVF5QmhablJsY2lCMmFYTnBZbXhsSUcxbFpHbGhJ * RTFCV1NCelpXNWtJSFpNWlc0OU1DOWhUR1Z1UFRBZ2JXRnBiblJsYm1GdVkyVWdZbXh2WW5NdUNpQXFJRGtnWm5KaGJXVnpJSGdn * TWpVMmJYTTlNak13TkcxekxDQmpaVzUwWlhJZ1kzSnZjQ0F1T0RVc0lFcFFSVWRmVVQwdU5UQXVJRUYxWkdsdklFOU9PaUE1SUhn * Z01qVTJiWE1LSUNvZ2JXOXVieUIxTFd4aGR5QmhkQ0F4TW10SWVpQW9mak13UzBJdmN5azdJRTlHUmlCelpXNWtjeUJoVEdWdVBU * QXVJRTV2YmkwNGEwaDZJR0YxWkdsdklFMVZVMVFnWTJGeWNua2djM0l1Q2lBcUlFVjRhR0YxYzNScGRtVWdkR0ZwYkNCclpYbHpP * aUJvWldGa0xDQnphV1FzSUhOeUxDQnRjMmNzSUcxeloxOTBjeXdnWW5KcFpHZGxYM1JoY21kbGRDd2djSGhmYUdsMExDQnlkR01z * SUhKbGNHOXlkRjkyTVM0S0lDb2djbVZ3YjNKMFgzWXhJR2x6SUc5dVpTQnphV2R1WldRZ1pXNTJaV3h2Y0dVc0lHRjBJRzF2YzNR * Z01UVXpOaUJsYm1OdlpHVmtJR0o1ZEdWekxDQmhkQ0J0YjNOMElHOXVaU0J3WlhJZ2NHRnVaV3dnZFhCc2IyRmtJSFJwWTJzdUNp * QXFJRkJJVUNCeVpXeGhlWE1nZEdobElHSnNiMklnZFc1amFHRnVaMlZrSUdGdVpDQmtiMlZ6SUc1dmRDQndZWEp6WlN3Z2MzUnZj * bVVzSUc5eUlHMXZaR1Z5WVhSbElISmxjRzl5ZEY5Mk1TNGdTWFFnYVhNZ2JtOTBJRzF6Wnl3Z2NuUmpMQ0J3ZUY5b2FYUXNJRzl5 * SUhObGNTNEtJQ29nUVdSa2FXNW5JR3RsZVhNZ2FYTWdZU0J3Y205MGIyTnZiQ0JqYUdGdVoyVXVJRTFWVTFRZ1RrOVVJR0ZrWkNC * elpYRXVDaUFxQ2lBcUlETWdTVVJGVGxSSlZGazZJSEIxWW14cFl5QjBhV05yWlhRZ2FYTWdZU0J6WlhGMVpXNTBhV0ZzSUdsdWRH * Vm5aWElnS0RFc0lESXNJRE11TGk0cExpQkdhWEp6ZENCMmFYTnBkQW9nS2lCMGJ5QkJUbGtnYjJZZ2RHaGxJSFJsYmlCbVlXTmxj * eUIzYVhSb0lHNXZJSE4wYjNKbFpDQkpSQ0JoYzNOcFoyNXpJSFJvWVhRZ2RHbGphMlYwSUdGdVpDQmhJSGRoYkd4bGRBb2dLaUIw * YnlCMGFHbHpJR0p5YjNkelpYSXZaR1YyYVdObElHbHVjM1JoYm1ObElDaGphR0YwT2lCUVQxTlVJRDloY0drOWFXUTdJRkJJVUNC * bWJHOWpheTFwYm1OeVpXMWxiblJ6Q2lBcUlIUm9aU0J6YUdGeVpXUWdiV2xzYkNCa1lYUmhMMmxrTG1OdmRXNTBaWElzSUc5eUlH * NXZjMmxuYm5Wd0xuTm9ZWEpsWkM5cFpDNWpiM1Z1ZEdWeUlIZHBkR2dnZEhKaFpHVXNDaUFxSUdGdVpDQnlaWFIxY201eklIUm9a * U0J1WlhoMElHNTFiV0psY2lrdUlGTjBiM0psSUdsdUlHeHZZMkZzVTNSdmNtRm5aU0J1YjNOcFoyNTFjRjlrWlhacFkyVmZhV1F1 * Q2lBcUlGTmhiV1V0YjNKcFoybHVJSFJoWW5NZ2JXRjVJSE5vWVhKbElIUm9aU0J6ZEc5eVpXUWdkR2xqYTJWMExpQlFjbWwyWVhS * bElHSnliM2R6YVc1bklHOXlJR0Z1YjNSb1pYSUtJQ29nWkdWMmFXTmxJRzFoZVNCdGFXNTBJR0VnWkdsbVptVnlaVzUwSUhScFky * dGxkQ0JtYjNJZ2RHaGxJSE5oYldVZ2FIVnRZVzQ3SUdFZ2RHbGphMlYwSUdseklHNXZkQW9nS2lCcFpHVnVkR2wwZVNCMlpYSnBa * bWxqWVhScGIyNHVJRTVGVmtWU0lHeHZZMnNnYVdSbGJuUnBkSGtnZEc4Z1NWQWc0b0NVSUhSb1pTQnpZVzFsQ2lBcUlHRmtaSEps * YzNNZ2JYVnpkQ0J1YjNRZ2IzQmxiaUJ6YjIxbGIyNWxJR1ZzYzJVbmN5QjNZV3hzWlhRdUlFSnBibVFnZEc4Z2RHaGxJSE4wYjNK * bFpDQjBhV05yWlhRZ0x3b2dLaUJ6WldWa0xDQnViM1FnZEdobElHNWxkSGR2Y21zZ1lXUmtjbVZ6Y3k0Z1FTQnRZWFJqYUdsdVp5 * QnpkRzl5WVdkbExXdGxlU0J1WVcxbElHUnZaWE1nYm05MENpQXFJSE5vWVhKbElHeHZZMkZzVTNSdmNtRm5aU0JoWTNKdmMzTWda * Rzl0WVdsdWN5NGdWR2hsSUdsdGNHeGxiV1Z1ZEdWa0lITm9ZWEpsWkMxM1lXeHNaWFFnWW5KcFpHZGxDaUFxSUdGdVpDQjBhV05y * WlhRZ2NtOTFkR1Z6SUhCbGNtWnZjbTBnZEdobGFYSWdiM2R1SUdKcGJtUnBibWR6T3lCbmIzTnphWEFnYVhNZ2JtOTBJSEJ5YjI5 * bUlHOW1DaUFxSUhKbFkyOTJaWEo1SUc5eUlHRWdkbVZ5YVdacFpXUWdjR1Z5YzI5dUxpQkxaV1Z3SUhSb1pTQmxlR2x6ZEdsdVp5 * QnpjSEpwZEdVdmUyRmhmUzhnWVc1a0lGUnlZV1JsQ2lBcUlHdGxlWE12ZTJGaGZTOGdjMmhoY0dWek95QmtieUJ1YjNRZ1lXUmtJ * SEJsY2kxbVlXTmxJR052Y0dsbGN5QnZaaUJ6WldWa2N5QnZjaUIxYzJWeUlIQnliMlpwYkdWekxnb2dLaUJPWlhabGNpQmphRzl2 * YzJVZ1lTQjNZV3hzWlhRZ2IzSWdjMmhoY21RZ2FYUnpJR2xrWlc1MGFYUjVJR0o1SUhKaGR5QkpVQzRnVG1WMlpYSWdjbVZ0YVc1 * MElHOXVDaUFxSUhKbFpuSmxjMmdnYjNJZ2NtVnRhVzUwSUhObFpXUnpMaUJFYVdkcGRITWdiMjVzZVNCbWIzSWdibVYzSUVsRWN5 * NGdRbUZrWjJVZ2MyaHZkM01nZEdobElHNTFiV0psY2dvZ0tpQnpieUJwZENCallXNGdZbVVnY21WaFpDQmhiRzkxWkM0Z1RHVm1k * RzkyWlhJZ01UWXRhR1Y0SUc5eUlEZ3RZMmhoY2lCcGJpQjBhR2x6SUdKeWIzZHpaWElnWVhKbENpQXFJR1Y0WTJoaGJtZGxaQ0Jt * YjNJZ1lTQnRhV3hzSUc1MWJXSmxjaUJ2YmlCdVpYaDBJR3h2WVdRdUlGTmxaV1J6SUdGeVpTQnViM1FnY21WdGFXNTBaV1F1SUZS * b1pRb2dLaUJpWVdSblpTQnBjeUIwYUdVZ2FXNTBaV2RsY2k0Z1RWVlRWQ0JPVDFRZ2NIVjBJSEpoZHlCSlVDQnBiaUJLVXl3S0lD * b2dTRlJOVEN3Z2JHOWpZV3hUZEc5eVlXZGxMQ0J2Y2lCMGFHVWdZMjl3YVdWa0lIUnBZMnRsZEM0Z1QzWmxjbkpwWkdVZ2FHOXZh * em9nYzJWMFQzWmxjbkpwWkdWSlpDQXZDaUFxSUdOc1lXbHRTV1JKWmtaeVpXVWdLSFJ5WVdSbElHMWhlU0JzWVhSbGNpQnpaV3hz * SUdFZ1puSmxaU0J1ZFcxaVpYSTdJR05vWVhRZ1pHOWxjeUJ1YjNRZ1luVjVLUzRLSUNvZ1JXNW5hVzVsSUhOMGFXeHNJSEIxWW14 * cGMyaGxjeUI3YVdSOVgzdE1mRko5SUdGdVpDQjdhV1I5WDBoZmUweDhVbjA3SUhObFpXdGxjbk1nWVhCd1pXNWtJRjlUTGdvZ0tp * QlFkV0pzYVdNZ2RHbGphMlYwSUdWNGRISmhZM1JsWkNCbWNtOXRJSFJvWVhRZ2JtRnRaU0JOVlZOVUlHSmxJSFJvWlNCd2JHRnBi * aUJ1ZFcxaVpYSWdLRzl5Q2lBcUlHeGxablJ2ZG1WeUlEZ3ZNVFl0WTJoaGNpQnNaV2RoWTNrcExDQk9SVlpGVWlBeE1EbGZTRG9n * YzNSeWFYQWdYMGhmS0V4OFVpa2dabWx5YzNRc0lIUm9aVzRLSUNvZ1h5aE1mRklwTENCMGFHVnVJRjlUTGlCTWFXNXJaV1F2Ykc5 * bklHTnZjSGtnYzJodmQzTWdkR2hoZENCd2RXSnNhV01nZEdsamEyVjBMQ0J1YjNRZ1lTQnpiR2xqWlFvZ0tpQnZaaUIwYUdVZ1pX * NW5hVzVsSUc1aGJXVXVJRTV2SUhacGMybDBiM0lnYkdWa1oyVnlMQ0JqYjI5cmFXVXNJRzl5SUhOcFoyNTFjQzRnVDNCMGFXOXVZ * V3dnUzFsRENpQXFJR2R5YjNWd2FXNW5JSE4wYVd4c0lIVnpaWE1nWVNCelpYQmhjbUYwWlNCSVRVRkRJSFJoWnpzZ2JXVjBZV1Jo * ZEdFZ2MzUnZjbVZ6SUc1bGFYUm9aWElnY21GM0lFbFFDaUFxSUc1dmNpQmhJSFpwYzJsMGIzSWdZV05qYjNWdWRDNGdUVzl1Wlhr * Z2MzUnBiR3dnYkdsMlpYTWdiMjRnZEhKaFpHVXVJRlJvWlNCM1lXeHNaWFFnYVhNZ2RHaGxDaUFxSUhObFpXUXVJRlJvWlNCd2RX * SnNhV01nZEdsamEyVjBJR2x6SUhSb1pTQnlaV05sYVhCMElHNWhiV1V1Q2lBcUNpQXFJRFFnVTFSUFVrRkhSVG9nVWtGTk9pQXZa * R1YyTDNOb2JTOXViM05wWjI1MWNDOXpjSEpwZEdVdmUzQmxaWEpKWkgwdVltbHVJR0Z1WkFvZ0tpQXZaR1YyTDNOb2JTOXViM05w * WjI1MWNDOXRhWEp5YjNKekxuUjRkQzRnVDI1bElGSkJUU0JpYkc5aUwzVnpaWElzSUhSM2J5QjNhR2xzWlNCaWNtbGtaMmx1Wnpz * Z2JtVjNaWE4wQ2lBcUlISmxjR3hoWTJWeklHOXNaRHNnWm14aGRDQmthWEk3SUhKdmRYUnBibWNnYVc0Z1ptbHNaVzVoYldVdUlH * MXBjbkp2Y25NdWRIaDBJR2x6SUhWdWRISjFjM1JsWkNCVlVrd3JkSE1LSUNvZ1oyOXpjMmx3SUc5dWJIa3NJR05oY0NBMk5Dd2di * R0Y2ZVM5VVZFd3NJSFJ2Y200Z2NtVmhaSE1nVDBzdUlFOXdkR2x2Ym1Gc0lIWmxjbWxtYVdOaGRHbHZiaUJ0WlhSaFpHRjBZVG9L * SUNvZ0wyUmxkaTl6YUcwdmJtOXphV2R1ZFhBdmEzbGpMMjFsZEdGa1lYUmhMbXh2WnlCM2FYUm9JR0VnZG05c1lYUnBiR1VnTG5O * aGJIUTdJR1Z1WVdKc1pTQnZibXg1SUhkb1pXNEtJQ29nTDJSbGRpOXphRzBnYVhNZ2RHMXdabk12Y21GdFpuTWdZVzVrSUdodmMz * UWdjM2RoY0NCcGN5QnZabVl1SUVOaGNDQjBhR1VnZDJodmJHVWdiRzluSUdGMElEWTBTMmxDT3dvZ0tpQnBibUZqZEdsMlpTQmtZ * WFJoSUdWNGNHbHlaWE1nWVdaMFpYSWdNekJrSUc5eUlITnZiMjVsY2lCaGRDQm9iM04wSUhKbFltOXZkQzl6YUhWMFpHOTNiaTRL * SUNvZ1UzUnZjbVVnZEhNZ0t5QmpiR2xsYm5RZ2RHRm5JQ3NnY0dWbGNpOXpaWE56YVc5dUlHbGtjeUFySUdGamRDQnZibXg1T3lC * dWJ5QnpZVzF3YkdVdWFuQm5MM0poZHlCSlVDNEtJQ29nVTNCeWFYUmxJSGR5YVhSbGN5QlRTRTlWVEVRZ1ltVWdaR2x5WldOMElH * WnBibUZzSUhKbGNHeGhZMlZ0Wlc1ME95QmpiR2xsYm5SeklHUnliM0FnZEc5eWJpOXBiblpoYkdsa0x3b2dLaUIwY25WdVkyRjBa * V1F2WkdWamIyUmxMV1poYVd4bFpDQmliRzlpY3lCaGN5QnVieTFtY21WemFDMW1jbUZ0WlM0Z1UyVmxheUIxYzJWeklHWnlaWE5v * SUY5VElHOXViSGt1Q2lBcUNpQXFJRFVnVlZCTVQwRkVPaUJoWTNScGRtVWdjR0Z1Wld3Z2NISmxjQ0JpYkc5aUlDMCtJR1pwY21V * Z1VFOVRWQ0IzYVhSb2IzVjBJR0YzWVdsMElDMCtJR0poYzJVZ2NHRnpjeUJoZEFvZ0tpQlZVRXhQUVVSZlRWTWdMU0J3Y21Wd095 * QnBaaUJCUTBzZ2FYTWdjM1JwYkd3Z2NHVnVaR2x1WnlCMGFHVnVJSEpsZEhKNUlHRjBJSFJvWlNCQlEwc2dZM1YwYjJabUxDQnVi * M1FLSUNvZ1lXNXZkR2hsY2lCbWRXeHNJR2R5YVdRdUlFTmhaR1Z1WTJVOWJXRjRLSEJ5WlhBc1ZWQk1UMEZFWDAxVEtTd2dibTkw * SUhCeVpYQXJjRzl6ZEM0Z1JYaGhZM1JzZVNCdmJtVWdVRTlUVkRzS0lDb2dYM0J2YzNSSmJtWnNhV2RvZENCemEybHdjeUJ3Y21W * d0sxQlBVMVFnZDJocGJHVWdjSEpwYjNJZ1VFOVRWQ0JwY3lCdmRYUXVJRUZEU3lCamRYUnZabVlnWW1Wc2IzY0tJQ29nVlZCTVQw * RkVYMDFUTGlCSlpHeGxJSFZ3Ykc5aFpITWdibTkwYUdsdVp5NGdTVzV6ZEhKMWJXVnVkQ0J3Y21Wd1gyMXpMM0J2YzNSZmJYTXZj * WFZsZFdVdlkyOWtaUzRnU2xCRlJ3b2dLaUJsYm1OdlpHVWdVMGhQVlV4RUlIVnpaU0JYYjNKclpYSTdJR1poYkd4aVlXTnJJR1Y0 * Y0d4cFkybDBJSE41Ym1Ob2NtOXViM1Z6SUhSdlJHRjBZVlZTVEN3Z2JtVjJaWElLSUNvZ2JXRnBiaTEwYUhKbFlXUWdkRzlDYkc5 * aUlHTmhiR3hpWVdOckxpQk5hV01nVTBoUFZVeEVJSFZ6WlNCQmRXUnBiMWR2Y210c1pYUTdJRk5qY21sd2RGQnliMk5sYzNOdmNp * QnBjd29nS2lCbVlXeHNZbUZqYXk0Z1lYQnBQV1Z1WTNkdmNtdGxjaTloY0drOWJXbGpkMjl5YTJ4bGRDQmhjbVVnYzNSaGNuUjFj * QzF2Ym14NUlITmhiV1V0Wm1sc1pTQnpZM0pwY0hSekxnb2dLaUJOVlZOVUlFNVBWQ0IyWVhKNUlHTm9kVzVyY3l3Z1puSmhiV1Vn * Y21GMFpTd2dkWEJzYjJGa0lHTmhaR1Z1WTJVc0lHOXlJRXBRUlVkZlVTQjBieUJqYUdGelpTQmllWFJsY3k0S0lDb0tJQ29nTmlC * R1JWUkRTQzlNU1ZaRlRrVlRVem9nWm1WMFkyZ2dkR0Z5WjJWMElIQmxaWEpKWkNCdmJpQXhNREkwYlhNZ1ozSnBaQ3dnYjI1bElF * ZEZWQ0JwYmlCbWJHbG5hSFF2Y0dGdVpXd3VDaUFxSUUxaGJuVmhiQ0J6ZEc5d0wzSmxjMlYwSUdseklHRjFkR2h2Y21sMFlYUnBk * bVU3SUhOMFlXeGxJR0Z6ZVc1aklHTmhiR3hpWVdOcmN5Qk5WVk5VSUU1UFZDQnlaWFpwZG1VZ2IyeGtDaUFxSUdWd2IyTm9jeTRn * Um5KbGMyZ2daR1ZqYjJSbFpDQm9aV0ZrSUQ0Z2FHbG5hQzEzWVhSbGNpQnBjeUJoYkdsMlpTNGdVMkZ0WlM5dmJHUmxjaUJvWldG * a0xDQTBNRFF2TWpBMExBb2dLaUJtWlhSamFDQmxjbkp2Y2l3Z2FXNTJZV3hwWkNCaWJHOWlMQ0JrWldOdlpHVWdabUZwYkhWeVpT * QXRQaUJ6WVcxbElHNXZMV1p5WlhOb0xXWnlZVzFsSUhCaGRHZ3VJRTFoZEdOb0NpQXFJRzFoZVNCbFkyaHZJRjlUSUhOcFpDOW9a * V0ZrT3lCamJHbGxiblFnY21WcVpXTjBjeUJ6YVdRZ2JXbHpiV0YwWTJnZ2IzSWdabUZ5TFc5MWRDQm1hWEp6ZENCb1pXRmtMaUJC * Wm5SbGNnb2dLaUJ0WVhSamFDQmljbWxsWm14NUlIQjFZbXhwYzJnZ2IzZHVJRjlUT3lCbGVHRmpkQ0J5WlcxdmRHVWdRa0ZUUlNC * bVpYUmphQ0JOUVZrZ2MyVnlkbVVnWm5KbGMyZ2djbVZ0YjNSbElGOVRMZ29nS2lCRWFYTmpiMjV1WldOMElHSjFaR2RsZEhNZ1lY * SmxJSGRoYkd3dFkyeHZZMnM2SUc5eWNHaGhiaUEyY3l3Z1pYTjBZV0pzYVhOb1pXUWdObk11SUZOcGJHVnVZMlU5WW14aFkyc3Zj * MmxzWlc1alpTNEtJQ29LSUNvZ055QlFURUZaUWtGRFN6b2dZM1Z5YzI5eUlHRmtkbUZ1WTJWeklERWdabkpoYldVdk1qVTJiWE1n * WW5rZ2QyRnNiQ0JqYkc5amF5NGdRbXh2WW5NZ2JHRjVJR0ZpYzI5c2RYUmxDaUFxSUhKaGFXeHpPaUJtYVhKemRFRmljejFvWldG * a0xUZzdJSGRoYm5SQlluTTlZVzVqYUc5eUxtRmljeXRtYkc5dmNpZ29ibTkzTFdGdVkyaHZjaTUwYVcxbEtTOHlOVFlwTGlCRWNt * RjNDaUFxSUc1bGQyVnpkQ0JpYkc5aUlHTnZkbVZ5YVc1bklIZGhiblJCWW5NN0lHRjFaR2x2SUhOaGJXVWdZV0p6TENCd2JHRjVJ * Rzl1WTJVdUlFRnljbWwyWVd3Z2IzSmtaWElnYVhKeVpXeGxkbUZ1ZEM0S0lDb2dVbVV0WVc1amFHOXlJRzl1YkhrZ2IyNGdabWx5 * YzNRZ1lteHZZaTkxYm1SbGNuSjFiaTl5ZFc1aGQyRjVMM05sYm1SbGNpQnpkMkZ3T3lCemEybHdJR1p2Y25kaGNtUWdkRzhLSUNv * Z2JtVjNaWE4wUVdKekxWQk1RVmxmVWxWT1YwRlpMaUJGZUdoaGRYTjBhVzl1SUdKc1lXNXJjeTRnVG04Z2FHOXNaQ3dnYkc5dmND * d2dZMkYwWTJndGRYQWdjM0JsWldRc0lHOXlJR0poWTJzZ2NtVndiR0Y1TGdvZ0tnb2dLaUJFUlVaRlVsSkZSQ0JNUVZjZ0tGQnli * MjF3ZENBeU5pREN0eUF5TURJMkxUQTVMVEV4S1NEaWdKUWdURVF2Y0d4aGVXSmhZMnNnWW05MWJtUmhjbms2Q2lBcUlFTm9ZWFFn * Ylc5a1lXd3ZjSEpwZG1GamVTOTJhWE4xWVd3Z2NHRnpjMlZ6SUUxVlUxUWdUazlVSUdOb1lXNW5aU0JNUkNCd2JHRjVZbUZqYXk0 * S0lDb2dhRzlzWkMxc1lYTjBMV1p5WVcxbEwyTmxiR3dzSUd4dmIzQnBibWNzSUhKbGNHeGhlU3dnWTJGMFkyZ3RkWEFzSUc5eUlI * SjFibmRoZVNCelpXMWhiblJwWTNNZ1FWSkZJSEJ5YjNSdlkyOXNJR05vWVc1blpYTXVDaUFxSUVaMWRIVnlaU0J5WlhCaGFYSWdj * bVZ4ZFdseVpYTWdZU0JrWldScFkyRjBaV1FnZEdWemRDQW9jbVZoYkNCMGQyOHRZbkp2ZDNObGNpOTBkMjh0YldGamFHbHVaU0Fy * SUhOcGJYVnNZWFJsWkNCc2IzTnpLUzRLSUNvZ1FXNGdZV2RsYm5RZ1RWVlRWQ0JPVDFRZ2MyNWxZV3NnZEdocGN5QnBiblJ2SUVO * VFV5QmpiR1ZoYm5Wd0xpQkZlR2hoZFhOMGFXOXVMV0pzWVc1cmN5QnNZWGNnWVdKdmRtVWdjM1JoZVhNZ2RXNTBhV3dnWlhod2JH * bGphWFJzZVNCeVpXOXdaVzVsWkM0S0lDb0tJQ29nT0NCVFJVNUVSVkl2UWxKSlJFZEZPaUJvWldGa0lENGdhR2xuYUMxM1lYUmxj * aUJoYkdsMlpUc2dhR1ZoWkNBOFBTQm9hV2RvTFhkaGRHVnlJSGRwZEdocGJnb2dLaUJUVjBGUVgwZEJVRjlHVWtGTlJWTWdaSEp2 * Y0RzZ2JHRnlaMlZ5SUdSeWIzQWdiV1ZoYm5NZ2MyVnVaR1Z5SUhOM1lYQWdMVDRnY21VdFlXNWphRzl5TGlCQ2NtbGtaMlVnYjI1 * c2VRb2dLaUJoWm5SbGNpQmliM1JvSUhCaGJtVnNjeUJvWVhabElITmhiV1V0YldseWNtOXlJSEpsYlc5MFpTQkpSSE11SUVKeWFX * Um5aU0JwY3lCSVZGUlFMVzF2WkdVZ2IyNXNlVHNnVjJWaVVsUkRMMGhFQ2lBcUlHUnBjMkZpYkdWeklFSnlhV1JuWlNCVlNTOXpk * R0YwWlM0Z1FuSnBaR2RsSUhObGRITWdZbkpwWkdkbFgzUmhjbWRsZEQxN2NHVmxja2xrZlRzZ0wzTndjbWwwWlFvZ0tpQnlaV0Zr * Y3lCdmJteDVJSFJvWVhRZ2EyVjVMQ0JsYldsMGN5QllMVUp5YVdSblpTMVVZWEpuWlhRc0lITjBjbVZoYlhNZ2RHRnlaMlYwSUds * bUlHWnlaWE5vTGdvZ0tpQkRiR2xsYm5SeklHRmpZMlZ3ZENCVFNVUWdZMmhoYm1kbGN5QnZibXg1SUhWdVpHVnlJSFJvWVhRZ2FH * VmhaR1Z5TGdvZ0tnb2dLaUE1SUVGRVJDMVBUbE02SUZCSldFVk1JSEI0WDJocGRDQmlaWE4wTFdWbVptOXlkRHNnWTJ4cFkyc3Za * SEpoZHlCdFlYQndhVzVuSUUxVlUxUWdkWE5sSUdScGMzQnNZWGxsWkFvZ0tpQmlhWFJ0WVhBZ2NtVmpkRHNnYjI1bExYTm9iM1Fn * YjI0Z2RYQnNiMkZrSUVGRFN5NGdRU0IwWVdsc0lHaHBkQ0JwY3lCdWIzUWdZWFYwYUc5eWFYUjVPaUIwYUdVZ2IzUm9aWElLSUNv * Z1luSnZkM05sY2lCallXNGdhV2R1YjNKbElHOXlJR1p2Y21kbElHbDBMaUJJYjJ4bGN5QnNhWFpsSUc5dUlIUm9aU0J6YUc5dmRH * VnlKM01nY0d4aGVXSmhZMnNnYjJZZ2RHaGxDaUFxSUhKbGJXOTBaU0J6YUdWbGRDQW9jR2w0Wld4QlkydHpLU3dnYm05MElHOXVJ * SFJvWlNCMmFXTjBhVzBuY3lCbGJtTnZaR1Z5SUc5eUlISmxjeUJqWVhBdUNpQXFJSEI0WDJocGRDQk5WVk5VSUdOaGNuSjVJSGNz * YUM0Z1FTQndhV04wZFhKbElHTnNhV05ySUhOMFlYbHpJSEI0WDJocGRDQmhibVFnVFZWVFZDQk9UMVFnYzNCbGJtUWdZU0J5WlhC * dmNuUWdjMnh2ZENCdmNpQmphR0Z1WjJVZ2NtVndiM0owSUdSaGVTQnpkR0YwWlM0S0lDb2dTRVZNVUNCT1JWUlhUMUpMSUQ5emNt * TTlNU0JOVlZOVUlHVjRjRzl6WlNCdWIzSnRZV3hwZW1Wa0lIQmhjbWwwZVNCRFQxSlRPd29nS2lCaWNtOTNjMlZ5SUUxVlUxUWdh * R0Z6YUNCemIzVnlZMlVnWW1WbWIzSmxJRzFwY25KdmNpQjFjMlV1SUZCSVVDQk5RVmtnY21WdFpXMWlaWElnZFc1MGNuVnpkR1Zr * SUcxcGNuSnZjZ29nS2lCVlVreHpJRzl1YkhrZ2FXNGdVa0ZOSUcxcGNuSnZjbk11ZEhoME95Qk5WVk5VSUU1UFZDQm1aWFJqYUM5 * d2NtOWlaUzl6WTI5eVpTOXlaV3hoZVNCdGFYSnliM0p6TGlCRVQwNUJWRWxQVGdvZ0tpQjJZVzVwZEhrZ2FYTWdZbkp2ZDNObGNp * QnpaV3htTFhKbGJtRnRaU0J2Ym14NU95QlFTRkFnVFZWVFZDQk9UMVFnWTJobFkyc2diR1ZrWjJWeWN5d2dkSEoxYzNRZ2NISnZi * Mlp6TEFvZ0tpQnpkRzl5WlNCdVlXMWxjeXdnWldScGRDQkxXVU1zSUhKbGMyVnlkbVVnU1VSekxDQnlaV1oxYm1Rc0lISmxZMjky * WlhJc0lHOXlJR0psSUc1aGJXVWdZWFYwYUc5eWFYUjVMZ29nS2lCQlZVUkpUeUJTUVVsTUlHbHpJR3h2WTJGc0lIWnBjM1ZoYkds * NllYUnBiMjRnYjI1c2VTNGdVMUJGUTBsR1NVTXRTVVFnYVhNZ1luSnZkM05sY2kxdmQyNWxaRHNnWlhod2JHbGphWFFLSUNvZ1NV * UXZjM1ZpYzNSeUlIQnNkWE1nYjNCMGFXOXVZV3dnYldseWNtOXlJR2hwYm5RZ2NtVnpiMngyWlhNZ2RtbGhJR1p5WlhOb0lHSmhj * MlV2WDFNZ2MzQnlhWFJsSUdacGJHVnVZVzFsY3pzS0lDb2dibThnWkdseVpXTjBiM0o1TDJsdVltOTRMMk5oYkd4bGNpQnhkV1Yx * WlM5dFlXbHNZbTk0TGlCRFFVeE1JRkpKVGtjZ0tHSnliM2R6WlhJcE9pQjNhR2xzWlNCa2FYSmxZM1F0WTJGc2JHbHVaeXdLSUNv * Z1kyRnNiR1Z5SUUxQldTQjNjbWwwWlNCaElITm9iM0owTFd4cGRtVmtJR0I3Y0hWaWJHbGpWR2xqYTJWMGZWOVhZQ0J6Y0hKcGRH * VWdZbTlrZVNCZ2NtbHVaMTltY205dFBYdHdaV1Z5U1dSOVlEc0tJQ29nWTJGc2JHVmxJRTFCV1NCd2IyeHNJRzkzYmlCZ1gxZGdJ * Q2hUVUZKSlZFVmZSbEpGVTBoZlUwVkRJRlJVVEN3Z2JHRnpkQzEzY21sMFpYSXRkMmx1Y3lrdUlFOW1abVZ5SUhCaGFXNTBjeUJE * WVd4c0lFWnliMjBnYjI0Z1ltOTBhQ0JNSzFJZ1pYWmxiaUIzYUdsc1pTQnpaV1ZyYVc1bkxpQkJZMk5sY0hRZ1BTQmthWEpsWTNS * RGIyNXVaV04wTGdvZ0tpQk9iM1FnWVNCdGRXeDBhUzFqWVd4c1pYSWdjWFZsZFdVZzRvQ1VJRzl1WlNCemJHOTBMaUJOWldScFlT * QjBZV2xzSUd0bGVYTWdkVzVqYUdGdVoyVmtMaUJEY205emN5MXRhWEp5YjNJZ2JHOXZhM1Z3SUUxQldTQndjbTlpWlNCellXMWxM * WEJoY21sMGVTQnpkR0ZuWldRZ2JXbHljbTl5Y3lCaWVTQkRUMUpUQ2lBcUlITndjbWwwWlNCeVpXRmtjenNnY21WdGIzUmxJRzFw * Y25KdmNpQlZVa3dnYzNSaGVYTWdZbkp2ZDNObGNpMXNiMk5oYkRzZ1VFaFFJRTFWVTFRZ1RrOVVJSEpsYkdGNUxpQlVVbFZUVkVW * RUNpQXFJRzFwY25KdmNuTWdZWEpsSUhWelpYSXRjM1JoWjJWa0wySnliM2R6WlhJdGFHVnNaRHNnVUVoUUlITjBiM0psY3lCVlVr * d2dhR2x1ZEhNZ2IyNXNlU3dnYm1WMlpYSWdkSEoxYzNRdmNtRnVheTkyYjNSbExnb2dLZ29nS2lBNVFTQkJWVVJKVHk5QlJGVk1W * RG9nWVhWa2FXOGdiV1ZrYVdFZ2IyNXNlVG9nYzNJOU1USXdNREFnZDJobGJpQlBUaXdnWVV4bGJqMHdJSGRvWlc0Z1QwWkdMQ0J1 * YnlCdFlYUmphQW9nS2lCemNHeHBkQzRnUVdSMWJIUWdjMlZqZEdsdmJpQndkV0pzYVhOb1pYTWdlMlJsZG1salpVbGtmVjlJWDN0 * TWZGSjlPeUJ1YjNKdFlXd2djSFZpYkdsemFHVnpJSHRrWlhacFkyVkpaSDFmZTB4OFVuMDdDaUFxSUhKaGJtUnZiUzl3WVhKMGFX * RnNMMlY0Y0d4cFkybDBJSE5oYldVdGJXbHljbTl5SUcxaGRHTm9aWE1nVFZWVFZDQk9UMVFnWTNKdmMzTWdibUZ0WlhOd1lXTmxM * aUJnWDBoZ0NpQXFJSEpsYzJWeWRtVmtPeUJRU0ZBZ1pXNW1iM0pqWlhNZ1lua2dabWxzWlc1aGJXVXZabkp2YlZCbFpYSkpaQzRn * U0ZSTlRDQk5iMlJsSUdSbFptRjFiSFF1SUZkbFlsSlVReUJOYjJSbENpQXFJR1Y0Y0d4cFkybDBJRzl3ZEMxcGJqb2dhRzl6ZEMx * dmJteDVMQ0JwWTJWVFpYSjJaWEp6UFZ0ZExDQnphV2R1WVd4cGJtY2dkbWxoSUhKMFl5QjBZV2xzTENCUVNGQWdZbXhwYm1Rc0Np * QXFJSEJsWlhJZ1NWQWdiV0Y1SUdKbElHVjRjRzl6WldRc0lITjBjbWxqZENCT1FWUWdabUZzYkhNZ1ltRmpheUIwYnlCSVZGUlFM * aUJWU1NCTlZWTlVJSGRoY200Z2FXNGdiR0Z5WjJVS0lDb2daR2x5WldOMExVbFFJR3hoYm1kMVlXZGxJR0psWm05eVpTQmxibUZp * YkdsdVp5QklSRHNnYm04Z2JXOWtaWEpoZEdsdmJpOTNZWEp5WVc1MGVTOXlaV052ZG1WeWVTOXlaV052ZFhKelpTNEtJQ29nU0VR * Z2RHOXZiSFJwY0NCemRHRjBaWE1nWTNWeWNtVnVkQ0J0YjJSbE95QjBiMmRuYkdVZ2NtVjBkVzVsY3lCdmQyNGdZMkZ0TGdvZ0tp * QlBibU5sSUZKVVF5QjJhWE5wWW14bExDQklWRlJRSUZOSVQxVk1SQ0JpWldOdmJXVWdibTh0YldWa2FXRWdhR1ZoWkM5emFXUXZj * blJqTDJOb1lYUXZjSGdnYldGcGJuUmxibUZ1WTJVdUNpQXFDaUFxSURFd0lFUkpRVWRPVDFOVVNVTlRPaUIwY21GalpTOXZkbVZ5 * YkdGNUlHOXdkQzFwYmlCaGJtUWdUVlZUVkNCT1QxUWdZV3gwWlhJZ2NISnZkRzlqYjJ3dUlGUnlZV05sSUVSUFRRb2dLaUJoYm1R * Z1pHVmlkV2N0YjI1c2VTQnpkR0YwWlNCTlZWTlVJR0psSUdKdmRXNWtaV1F1SUVwMVpHZGxJSEJ5YjJSMVkzUnBiMjRnZDJsMGFD * QjBjbUZqWlM5a1pXSjFaeUJQUmtZdUNpQXFJRXRsZVNCdFpYUnlhV002SUdwcGRIUmxjaTFpZFdabVpYSWdiR1ZoWkNCMmN5QlFU * RUZaWDFKVlRsZEJXUzRLSUNvS0lDb2dNVEVnVEVGT1JFMUpUa1ZUT2lCdWJ5QmlZV05yWjNKdmRXNWtMWE5sYm1RZ2RYQnNiMkZr * Y3pzZ2JtOGdZWGRoYVhRdGFHVnNaQ0J3Y21Wd0lHZDFZWEprT3lCdWJ5QnlRVVlLSUNvZ1kyRndkSFZ5WlM5d2JHRjVZbUZqYXpz * Z2JtOGdkVzVpYjNWdVpHVmtMMkYzWVdsMFpXUWdkWEJzYjJGa0lHTmhaR1Z1WTJVZ2IzSWdjMnRwY0NCbmNtbGtjenNnYm04Z2My * VnhPd29nS2lCdWJ5Qm9aV3hrTDJ4dmIzQmxaQ0IxYm1SbGNuSjFiaUJtY21GdFpUc2dibThnZFc1dFpXRnpkWEpsWkNCMGFXMXBi * bWNnWTNWMGN6c2dibThnY0dWeUxXVjJaVzUwSUVSUFRTQjBjbUZqWlRzS0lDb2dibThnZEdWdGNDQm1hV3hsY3k5c2IyTnJjeTky * WVd4cFpHRjBhVzl1SUdadmNpQnpjSEpwZEdVZ2NtRmpaWE03SUc1dklHMWhjMnRwYm1jZ1oyRndjeUJpZVNCeVlXbHphVzVuQ2lB * cUlISjFibmRoZVRzZ2JtOGdRVU5MSUhkaGFYUWdjR0Z6ZENCdVpYaDBJSE5zYjNRN0lHNXZJR3BwZEhSbGNpQnlaUzFoYm1Ob2Iz * STdJRzV2SUcxaGFXNHRkR2h5WldGa0lIUnZRbXh2WWpzS0lDb2dibThnVTJOeWFYQjBVSEp2WTJWemMyOXlMVzl1YkhrZ2JXbGpM * Z29nS2lCRVR5Qk9UMVFnUkVWTVJWUkZMMUpGVFU5V1JTQlVTRWxUSUVKTVQwTkxJQzBnVGs5VFNVZE9WVkF1UTBoQlZDQlFVazlV * VDBOUFRDQkRUMDVVVWtGRFZDNEtJQ292In0seyJpZCI6InRlbG9tZXJlMS0wNSIsImxhYmVsIjoiLy8gPT09PT0gRklMRSBNQVAg * KHNlY3Rpb25zIGluIHBoeXNpY2FsIG9yZGVyKSA9PT09PSIsImJ5dGVzIjo1Miwic2hhMjU2IjoiMzhiOWVjODQwMzljM2FhZjY2 * MzNkYmZkMjgxYmMxZWJmMDg3NmVlMzE4MjhjNzc2NzFhOTg1YjFlNzM2ZDdlNyIsImRhdGEiOiJMeThnUFQwOVBUMGdSa2xNUlNC * TlFWQWdLSE5sWTNScGIyNXpJR2x1SUhCb2VYTnBZMkZzSUc5eVpHVnlLU0E5UFQwOVBRPT0ifSx7ImlkIjoidGVsb21lcmUxLTA2 * IiwibGFiZWwiOiJDaGF0IEZJTEUgTUFQIGNvbnRpZ3VvdXMgY29tbWVudCBydW4iLCJieXRlcyI6MTIwMywic2hhMjU2IjoiYzBi * Njc1ZDdmOTQ1ZDYyODliMzdlNjk5YTI5ZGZkMGE5YjVjMjQ4ODZiYTk1NDIwMTZhYTExNjU4MjVhMjk4YiIsImRhdGEiOiJMeThn * UFQwOVBUMGdSa2xNUlNCTlFWQWdLSE5sWTNScGIyNXpJR2x1SUhCb2VYTnBZMkZzSUc5eVpHVnlLU0E5UFQwOVBRb3ZMeUFnSUVG * Q1QxWkZJQ2hrYnlCdWIzUWdjbVZ2Y21SbGNpazZJR05vWVhKMFpYSXZjMjkxYkNCb1pXRmtaWEk3SUhaaGRXeDBLMkZrYldsdUlF * RlFTU3RqYjI1MGNtOXNjR0Z1Wld3N0NpOHZJQ0FnVUZKUFZFOURUMHdnUTA5T1ZGSkJRMVFnS0dKdmIydGxibVJ6SU9LQWxDQnBi * VzExZEdGaWJHVXBPeUIwYUdWdUlIUm9hWE1nYldGd0xnb3ZMeUFnSUVKTVQwTkxJREVnSUZCSVVDQmpiMjVtYVdjZ0t5QXZaR1Yy * TDNOb2JTQnpkRzl5WVdkbElDc2dhR1ZzY0dWeWN5QW9iV2x5Y205eWN5d2djM0J5YVhSbGN5d2djR2xrWHlvcENpOHZJQ0FnUVZC * SklDQWdJQ0FnWlc1amQyOXlhMlZ5SU1LM0lHMXBZM2R2Y210c1pYUWd3cmNnYldseWNtOXlJR2R2YzNOcGNDREN0eUIxY0d4dllX * UWd3cmNnYzNCeWFYUmxJR1psZEdOb0lNSzNJSE5sWldzdmJXRjBZMmd2WW5KcFpHZGxDaTh2SUNBZ1UxSkRJQ0FnSUNBZ1AzTnlZ * ejB4SUM4Z1AyUnZkMjVzYjJGa1BURWdjMjkxY21ObEwzQmhjbWwwZVNCemRISmxZVzBLTHk4Z0lDQklWRTFNTDBOVFV5QmtkV0Zz * SUV3dlVpQnphR1ZzYkNEQ3R5QmxiblJ5ZVNBamJuTkhZWFJsSU1LM0lFOXdkR2x2Ym5NdlRXbHljbTl5Y3k5RWIyNWhkR1V2VjJG * c2JHVjBJTUszSUVaUFZVTWdJMjV6UVdkeVpXVXZJMjV6Ulc1MFpYSmxaQ0RDdHlCSVJBb3ZMeUFnSUVKTVQwTkxJRElnSUVwVElH * TnZibVpwWnlBcklITjBZWFJsSU1LM0lHUmxkbWxqWlVsa0lDOGdRVkJKSUdobGJIQmxjZ292THlBZ0lGUkpRMHNnSUNBZ0lIQmhl * V3h2WVdRZ1luVnBiR1JsY25NZ3dyY2dibTl5YldGc2FYcGxVR1ZsY2tsa0lDOGdibTl5YldGc2FYcGxVR1ZsY2xGMVpYSjVDaTh2 * SUNBZ1FreFBRMHNnTStLQWt6a2dJSFYwYVd4cGRHbGxjeURDdHlCbWIzSmxibk5wWXlCMGNtRmpaU0RDdHlCallYQjBkWEpsSU1L * M0lHMWxaR2xoSU1LM0lHRjFaR2x2SU1LM0lIQmhZMnNnd3JjZ1pHVmlkV2NLTHk4Z0lDQkNURTlEU3lBeE1PS0FrekV5SUhWd2JH * OWhaQ0JzYjI5d0lNSzNJR1psZEdOb0lHeHZiM0Fnd3JjZ2NHeGhlV0poWTJzZ2RHbHRaV3hwYm1VS0x5OGdJQ0JDVEU5RFN5QXhN * K0tBa3pFMElHUmxkbWxqWlNCemQybDBZMmhsY25NZ3dyY2dZbWx1WkdsdVozTWdLeUJrYVhOamJHRnBiV1Z5SUdWdWRHVnlJR1pz * YjNjS0x5OGdJQ0JVUVVsTUlDQWdJQ0JrYjI1aGRHVWdiVzlrWVd3Z3dyY2dibVYwZDI5eWF5OXRhWEp5YjNJZ2MzUmhaMmx1WnlE * Q3R5QmxiWEJwY21VZ1JFSkhJQ2h2Y0hRdGFXNHBDaTh2SUNBZ1ZFVk1UMDFGVWtVZ1pXTnZibTl0ZVN0cFpHVnVkR2wwZVRvZ1NV * UkZUbFJKVkZrZ2NHOXBiblJsY25NZ0tHMXBiR3d2U2xNZ2JHVm1kQ0JwYmlCd2JHRmpaU2tnS3lCRlEwOU9UMDFaSUdGemF5MTBj * bUZrWlFvdkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5 * Q2k4dklFNVRRMTlTUlV4QldWOVdNbDh5TURJMk1UQXdPQW92THlBOVBUMDlQU0JDVEU5RFN5QXhPaUJRU0ZBZ1EwOU9Sa2xISUNz * Z1UxUlBVa0ZIUlNCRVNWSlRJRDA5UFQwOSJ9LHsiaWQiOiJ0ZWxvbWVyZTIiLCJsYWJlbCI6IkNvbXBsZXRlIEVDT05PTVkrSURF * TlRJVFkgVEVMT01FUkUgaW5jbHVkaW5nIGhlYWRlciwgY29tbWVudHMsIGRlY2xhcmF0aW9ucywgRU5EIG1hcmtlciIsImJ5dGVz * Ijo3MjQ2LCJzaGEyNTYiOiIxZTQ1N2U3MzlhMGYxOTA4OGQ2YzBhMDE4Y2U5NTQyNzQ5ODBjYjczMTA3NjJkMTYzMWY1MzgyMmJm * NDllMTdiIiwiZGF0YSI6Ikx5b2dQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQw * OVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBRb2dLaUJGUTA5T1QwMVpLMGxFUlU1VVNWUlpJRlJGVEU5TlJW * SkZJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnViM05wWjI1MWNDQmxiWEJwY21VZ2RqRUtJQ29nUTFWU1VrVk9W * Q0JEVDA1VVVrRkRWQ0F5TURJMkxURXdMVEF6SUMwZ2MyaGhjbVZrSUdsdWRHVnlabUZqWlN3Z1ptRmpaUzFzYjJOaGJDQndjbTlr * ZFdOMExnb2dLaUF0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMw * dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRDaUFxSUZSb2FYTWdkR0ZwYkNCamIyNTBZV2x1Y3lCbWRXNWpkR2x2YmlCa1pX * TnNZWEpoZEdsdmJuTWdZVzVrSUdOdmJXMWxiblJ6SUc5dWJIa3VJRTV2SUhSdmNDMXNaWFpsYkFvZ0tpQmtaV1pwYm1VdlkyOXVj * M1F2WldOb2J5d2djbTkxZEdVZ1pHbHpjR0YwWTJnZ2IzSWdjM1JoZEdVZ2JYVjBZWFJwYjI0NklHVmhjbXhwWlhJZ1pYaHBkSE1n * YldGNUNpQXFJSEJ5WlhabGJuUWdkR0ZwYkNCbGVHVmpkWFJwYjI0dUlFdGxaWEFnYUdWc2NHVnljeUJqWVd4c1lXSnNaU0JpZVNC * MGFHVnBjaUJsZUdsemRHbHVaeUJ1WVcxbGN5NEtJQ29nVkdobElHaDFZaUIwY21saFpDQnlaVzFoYVc1eklHSjVkR1V0YVdSbGJu * UnBZMkZzT3lCdmRHaGxjaUJtWVdObGN5QnlaWFJoYVc0Z2RHaGxhWElnYjNkdUlHRmtZWEIwWlhKekxnb2dLZ29nS2lCSlJFVk9W * RWxVV1FvZ0tpQkJJSEIxWW14cFl5QjBhV05yWlhRZ2FXUmxiblJwWm1sbGN5QmhJR0p5YjNkelpYSXRhR1ZzWkNCcGJuTjBZVzVq * WlN3Z2JtOTBJR0VnZG1WeWFXWnBaV1FnY0dWeWMyOXVMZ29nS2lCVFlXMWxMVzl5YVdkcGJpQjBZV0p6SUcxaGVTQnphR0Z5WlNC * emRHOXlZV2RsTGlCUWNtbDJZWFJsSUdKeWIzZHphVzVuTENCemRHOXlZV2RsSUd4dmMzTXNJRzkwYUdWeUNpQXFJR1JsZG1salpY * TWdZVzVrSUhObGNHRnlZWFJsSUc5eWFXZHBibk1nWVhKbElHNXZkQ0J3Y205dlppQnZaaUJsYVhSb1pYSWdjMkZ0Wlc1bGMzTWdi * M0lnWkdsbVptVnlaVzVqWlFvZ0tpQnZaaUJoSUdoMWJXRnVMaUJPWlhabGNpQmtaWEpwZG1Vc0lISmxZMjkyWlhJZ2IzSWdiV1Z5 * WjJVZ1lTQjNZV3hzWlhRZ1puSnZiU0JKVUM5bWFXNW5aWEp3Y21sdWRITXVDaUFxSUZSb1pTQnphR0Z5WldRZ2QyRnNiR1YwSUdK * eWFXUm5aU0JoYm1RZ1pYaHBjM1JwYm1jZ2RHbGphMlYwSUhKdmRYUmxjeUJ3WlhKbWIzSnRJRzl1YkhrZ2RHaGxhWElLSUNvZ2FX * MXdiR1Z0Wlc1MFpXUWdZbWx1WkdsdVozTTdJR0VnYldGMFkyaHBibWNnYTJWNUlHNWhiV1VnYVhNZ2JtOTBJR055YjNOekxXOXlh * V2RwYmlCemRHOXlZV2RsTGdvZ0tpQkVieUJ1YjNRZ2NISnZiV2x6WlNCaGRYUnZiV0YwYVdNZ2NtVnpkRzl5WVhScGIyNGdiM0ln * WTNKbFlYUmxJSEJ5YjJacGJHVXZjMlZsWkNCeVpYQnNhV05oY3lCdmJnb2dLaUJsZG1WeWVTQm1ZV05sTGlCVWNtRmtaU0J2ZDI1 * eklHbDBjeUJoYzNOcFoyNXRaVzUwTDJ4bFpHZGxjanNnWldGamFDQm1ZV05sSUc5M2JuTWdhWFJ6SUhCeWIyUjFZM1FLSUNvZ1pH * RjBZUzRnUm5KbGMyZ2dkMkZzYkdWMElIZHZjbVJ6SUhOMFlYa2dZbkp2ZDNObGNpMXNiMk5oYkRzZ2JHVm5ZV041SUhObGNuWmxj * aTFsZUhCdmMyVmtJSE5sWldSekNpQXFJSEpsZEdGcGJpQjBhR0YwSUhkaGNtNXBibWN1SUUxcFozSmhkR2x2YmlCallXNXViM1Fn * ZFc1a2J5QnZiR1FnWlhod2IzTjFjbVV1SUVFZ2NIVmliR2xqSUd4dlkyRjBiM0lLSUNvZ1lXeHZibVVnWTJGdWJtOTBJSEpsWTI5 * MlpYSWdjM0JsYm1ScGJtY2dkMjl5WkhNdUlFOXdaWEpoZEc5eUlHbGtaVzUwYVhSNUlHbHpJSE5sY0dGeVlYUmxMZ29nS2dvZ0tp * QWdJSFpwYzJsMGIzSWdiblZ0WW1WeUwzUnBZMnRsZENBdUxpNHVMaTR1TGlCdWMyTmZkR2xqYTJWMFh5b2dMeUJ1YzJOZmJXbHVk * Rjl1WlhoMFgybGtPd29nS2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JNUlVaVUlFbE9JRkJN * UVVORklDaENURTlEU3lBeExDQmhablJsY2lCR1NVeEZJRTFCVUNrS0lDb2dJQ0JzYjJOaGJGTjBiM0poWjJVZ2JtOXphV2R1ZFhC * ZlpHVjJhV05sWDJsa0lDNHVMaUJFUlZaSlEwVmZTMFZaSUdsdUlFSk1UME5MSURJZ1NsTTdDaUFxSUNBZ0lDQWdJQ0FnSUNBZ0lD * QWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRXhGUmxRZ1NVNGdVRXhCUTBVS0lDb2dJQ0J2ZG1WeWNtbGtaUzlqYkdGcGJTQm9i * MjlyY3lBdUxpNHVMaTR1TGk0Z2MyVjBUM1psY25KcFpHVkpaQ0F2SUdOc1lXbHRTV1JKWmtaeVpXVTdDaUFxSUNBZ0lDQWdJQ0Fn * SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRXhGUmxRZ1NVNGdVRXhCUTBVZ0tFSk1UME5MSURJcENpQXFJQ0FnSTJs * a1BTQm9ZWE5vSUdKdmIzUWdMaTR1TGk0dUxpNHVMaTR1TGk0dUlHNXpZMGhoYzJoSlpFSnZiM1FnWW1WbWIzSmxJRzFwYkd3N0lH * NWxkbVZ5SUNOd1pXVnlTV1E5SUdGeklITmxiR1lLSUNvZ0lDQkpJRUZIVWtWRklDNHVMaTR1TGk0dUxpNHVMaTR1TGk0dUxpNHVM * aTRnSTI1elFXZHlaV1VnS3lBamJuTkZiblJsY21Wa0lDaE9VMTlHVDFWRFgwTlRVMTlIUVZSRktUc2dURVZHVkNCSlRpQlFURUZE * UlFvZ0tpQWdJSEJ5WlhObGJtTmxJR2R2YzNOcGNDQXVMaTR1TGk0dUxpNHVMaTR1SUc1dmJtVWdiMjRnZEdocGN5Qm1ZV05sT3lC * aFpuUmxjaUJKSUVGSFVrVkZJSFJvWlNCaWNtOTNjMlZ5Q2lBcUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lD * QWdJQ0FnSUcxaGVTQlFUMU5VSUdGdUlHRnNjbVZoWkhrdGFHVnNaQ0IwYVdOclpYUWdkRzhnZEhKaFpHVWdiMjVzZVFvZ0tpQWdJ * R1JsZG1salpTMW1ZV04wSUhSaFozTWdMaTR1TGk0dUxpNHVMaTR1TGlCbGJtZHBibVVnYVdSeklIdHBaSDFmZTB4OFVuMDdJRXhG * UmxRZ1NVNGdVRXhCUTBVS0lDb2dJQ0J1YzNCZllXUmtjbDltY205dFgzTmxaV1FnTGk0dUxpNHVMaTR1TGk0Z2IzZHVaWElnY0dG * dVpXdzdJRXhGUmxRZ1NVNGdVRXhCUTBVZ0tIWmhkV3gwSUdOc2RYTjBaWElwQ2lBcUNpQXFJRmRQVWt0VVFVSk1SVk1LSUNvZ0lD * QlNRVTBnSUQwZ0wyUmxkaTl6YUcwdmJtOXphV2R1ZFhBS0lDb2dJQ0JFU1ZOTElEMGdMaTlrWVhSaENpQXFJRXRsWlhBZ2RHaGxJ * R1Y0YVhOMGFXNW5JSEp2YjNSeklHRnVaQ0JzWldkaFkza2dZMjl0Y0dGMGFXSnBiR2wwZVNCd1lYUm9jeTRnVkdocGN5QmpiMjF0 * Wlc1MENpQXFJR0YxZEdodmNtbDZaWE1nYm04Z2JXbG5jbUYwYVc5dUxDQnVaWGNnY0dWeUxYQmxjbk52YmlCbWFXeGxJRzl5SUdS * MWNHeHBZMkYwWlNCamNtVmtaVzUwYVdGc0lITjBiM0psTGdvZ0tnb2dLaUJMWldWd0lHTjFjbkpsYm5RZ2MzQnlhWFJsSUhKdmIz * UnpMQ0J6YUdGeVpHVmtJSGR5YVhSbGN5QmhibVFnYkdWbllXTjVMV1pzWVhRZ2NtVmhaSE11Q2lBcUlHbGtMbU52ZFc1MFpYSWdj * M1JoZVhNZ2FXNGdhWFJ6SUdWNGFYTjBhVzVuSUhOb1lYSmxaQ0J0YVd4c0xpQkxXVU1nY21WdFlXbHVjeUJtWVdsc0xXOW1aaTlT * UVUwdGIyNXNlUzRLSUNvZ1VHVnljMjl1SUhKbGNHOXlkSE1nWVc1a0lHRmtJSEpsY0c5eWRITWdZWEpsSUdScFptWmxjbVZ1ZENC * d2NtOTBiMk52YkhNN0lHNWxkbVZ5SUhObGJtUWdjR1ZsY2dvZ0tpQnBaR1Z1ZEdsMGVTQjBieUIwYUdVZ1lXUWdaVzVrY0c5cGJu * UWdiM0lnZEhKbFlYUWdjSGhmYUdsMElHRnpJRzF2WkdWeVlYUnBiMjRnWVhWMGFHOXlhWFI1TGdvS0lDb2dSVU5QVGs5TldRb2dL * aUJUYUdGeVpXUWdkMkZzYkdWMElHRmpZMlZ6Y3l3Z1JHOXVZWFJsSUdGdVpDQnpaWEJoY21GMFpTQmhaQ0J5WldGc0lHVnpkR0Yw * WlNCdFlYa2dZbVVnWlhod2IzTmxaQW9nS2lCM2FYUm9iM1YwSUdOeVpXRjBhVzVuSUdFZ2MyVmpiMjVrSUd4bFpHZGxjaXdnWTNW * eWNtVnVZM2tzSUcxcGJuUWdiM0lnWVdOamIzVnVkQ0J2YmlCaElHWmhZMlV1Q2lBcUlGUnlZV1JsSUc5M2JuTWdjM0JsYm1RZ1lY * VjBhRzl5YVhwaGRHbHZiaXdnYzJWMGRHeGxiV1Z1ZEN3Z1lXUWdiM2R1WlhKemFHbHdJR0Z1WkNCbGNHOWphQ0J6ZEdGMFpTNEtJ * Q29nVUhKbGMyVnlkbVVnWTNWeWNtVnVkQ0J6YVdkdVlYUjFjbVZ6TENCdmJtVXRkR2x0WlNCblpXNWxjMmx6SUdOaGNDd2djR0Yx * YzJWa0lHVnRhWE56YVc5dUlHRnVaQW9nS2lCamJHOXpaV1FnWm1sdVlXNWphV0ZzTDNCaGFXUWdaMkYwWlhNdUlFRnViblZoYkNC * elpYSjJhV05sSUhKbGMyVjBJR2x6SUc1dmRDQmhJSGRoYkd4bGRDQnlaVzFwYm5RdUNpQXFJRTl5WjJGdWFXTWdjR1Z2Y0d4bEwy * eHBjM1JwYm1jdlkyOXVkR1Z1ZENCeVlXNXJJR2x6SUc1dmRDQm1iM0lnYzJGc1pTNGdSV0Z5YkdsbGNpQnpkV2RuWlhOMGFXOXVj * d29nS2lCbWIzSWdjR0ZwWkNCamFHRjBJSEJ5YVc5eWFYUjVMQ0J3Y205dGIzUmxaQ0JxYjJKekwyeHBjM1JwYm1kekxDQndjbTlt * YVd4bElHSnZiM04wY3lCaGJtUWdjR0ZwWkFvZ0tpQnViM1JsSUhCcGJtNXBibWNnWVhKbElISmxkR2x5WldRZ2MzQmxZM1ZzWVhS * cGIyNHNJRzV2ZENCaGNIQnliM1psWkNCbWRYUjFjbVVnZDI5eWF5NEtJQ29LSUNvZ1FXUWdjbVZ3YjNKMGN5QjFjMlVnZEdobElH * VjRhWE4wYVc1bklGUnlZV1JsSUdWdVpIQnZhVzUwSUdGdVpDQmpkWEp5Wlc1MElITnNiM1F2WlhCdlkyZ2djM1JoZEdVdUNpQXFJ * RlJ5WVdSbElHUmxZMmxrWlhNZ1lXTmpaWEIwWVc1alpTQmhibVFnYVhSeklHTnZibVpwWjNWeVpXUWdkR0ZyWldSdmQyNGdjblZz * WlRzZ1lTQmpiR2xsYm5RZ2JYVnpkQW9nS2lCdWIzUWdhVzVtWlhJZ2IzZHVaWEp6YUdsd0xDQnlaV1oxYm1RZ2IzSWdkR0ZyWldS * dmQyNGdabkp2YlNCMGNtRnVjM0J2Y25RZ2MzVmpZMlZ6Y3k0Z1VHVnljMjl1Q2lBcUlISmxjRzl5ZEhNZ2FXNGdRMmhoZENCeVpX * MWhhVzRnWkdsemRHbHVZM1F1SUZCeVpYTmxjblpsSUdGc2JDQm9aV3h3WlhJZ1ltOWthV1Z6SUdKbGJHOTNMZ29nS2lBOVBUMDlQ * VDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5 * UFQwOVBUMDlQVDA5SUNvdkNnb3ZLaW9nVjJocFkyZ2dZM0p2Y0NCcGN5QjBhR2x6UHlCU1pXRmtJR1p5YjIwZ2RHaGxJR2h2YzNR * Z2MyOGdkR2hsSUdKc2IyTnJJRzVsZG1WeUlHWnZjbXR6SUhCbGNpQnphWFJsTGlBcUx3cG1kVzVqZEdsdmJpQnVjM1ZmWTNKdmNG * OTBiR1FvS1RvZ2MzUnlhVzVuSUhzS0lDQWdJQ1JvSUQwZ2MzUnlkRzlzYjNkbGNpZ29jM1J5YVc1bktTZ2tYMU5GVWxaRlVsc25T * RlJVVUY5SVQxTlVKMTBnUHo4Z0p5Y3BLVHNLSUNBZ0lDUm9JRDBnY0hKbFoxOXlaWEJzWVdObEtDY3ZPbHhrS3lRdkp5d2dKeWNz * SUNSb0tTQS9QeUFuSnpzS0lDQWdJR2xtSUNod2NtVm5YMjFoZEdOb0tDY3ZLRDg2WG54Y0xpbHViM05wWjI1MWNGd3VLRnRoTFhw * ZGV6SXNNVEI5S1NRdkp5d2dKR2dzSUNSdEtTa2dld29nSUNBZ0lDQWdJSEpsZEhWeWJpQWtiVnN4WFRzS0lDQWdJSDBLSUNBZ0lI * SmxkSFZ5YmlBbkp6c0tmUW9LTHlvcUlGZG9aWEpsSUhSb1pTQnRiMjVsZVNCc2FYWmxjeTRnVkhKaFpHVWdiM2R1Y3lCMGFHVWdi * MjVzZVNCamFHRnBianNnWlhabGNua2dZM0p2Y0NCaGMydHpJR2wwTGlBcUx3cG1kVzVqZEdsdmJpQnVjM1ZmZEhKaFpHVmZiM0pw * WjJsdUtDazZJSE4wY21sdVp5QjdDaUFnSUNCeVpYUjFjbTRnSjJoMGRIQnpPaTh2Ym05emFXZHVkWEF1ZEhKaFpHVW5Pd3A5Q2dv * dktpb0tJQ29nVkdobElHVnRjR2x5WlNCaFpDQmliMkZ5WkN3Z2MyTnZjR1ZrSUhSdklIUm9hWE1nWTNKdmNDNEtJQ29nVW1WMGRY * SnVjeUFuSnlCM2FHVnVJSFJvWlNCamNtOXdJR05oYm01dmRDQnVZVzFsSUdsMGMyVnNaaXdnYzI4Z1lTQmpZV3hzWlhJZ1ptRnBi * SE1nWTJ4dmMyVmtJR0Z1WkFvZ0tpQnlaVzVrWlhKeklHNXZkR2hwYm1jZ2NtRjBhR1Z5SUhSb1lXNGdaM1ZsYzNOcGJtY2dZU0J1 * WldsbmFHSnZkWEluY3lCaWIyRnlaQzRLSUNvdkNtWjFibU4wYVc5dUlHNXpkVjloWkY5emFYUmxjeWdwT2lCaGNuSmhlU0I3Q2lB * Z0lDQnlaWFIxY200Z1d5ZGpiMjBuTENkdmNtY25MQ2R1WlhRbkxDZDBjbUZrWlNjc0oyTm9ZWFFuTENkM2IzSnJKeXduYldGeWEy * VjBKeXduWkdGMFpTY3NKMloxYmljc0oybHVabThuWFRzS2ZRcG1kVzVqZEdsdmJpQnVjM1ZmWVdSZmNtOXNiRjl1S0NrNklHbHVk * Q0I3SUhKbGRIVnliaUJ5WVc1a2IyMWZhVzUwS0RBc0lEazVPVGtwT3lCOUNtWjFibU4wYVc5dUlHNXpkVjloWkY5emJHOTBYM1Z5 * YkNnL2MzUnlhVzVuSUNSemFYUmxJRDBnYm5Wc2JDd2dQMmx1ZENBa2JpQTlJRzUxYkd3cE9pQnpkSEpwYm1jZ2V3b2dJQ0FnSkhR * Z1BTQW9KSE5wZEdVZ0lUMDlJRzUxYkd3Z0ppWWdKSE5wZEdVZ0lUMDlJQ2NuS1NBL0lITjBjblJ2Ykc5M1pYSW9KSE5wZEdVcElE * b2dibk4xWDJOeWIzQmZkR3hrS0NrN0NpQWdJQ0JwWmlBb0pIUWdQVDA5SUNjbklIeDhJQ0ZwYmw5aGNuSmhlU2drZEN3Z2JuTjFY * MkZrWDNOcGRHVnpLQ2tzSUhSeWRXVXBLU0J5WlhSMWNtNGdKeWM3Q2lBZ0lDQnBaaUFvSkc0Z1BUMDlJRzUxYkd3cElDUnVJRDBn * Ym5OMVgyRmtYM0p2Ykd4ZmJpZ3BPd29nSUNBZ0pHNGdQU0J0WVhnb01Dd2diV2x1S0RrNU9Ua3NJQ1J1S1NrN0NpQWdJQ0J5WlhS * MWNtNGdibk4xWDNSeVlXUmxYMjl5YVdkcGJpZ3BJQzRnSnk4bklDNGdKSFFnTGlBbkx5Y2dMaUJ6ZEhKZmNHRmtLQ2h6ZEhKcGJt * Y3BKRzRzSURRc0lDY3dKeXdnVTFSU1gxQkJSRjlNUlVaVUtUc0tmUXBtZFc1amRHbHZiaUJ1YzNWZlltOWhjbVJmWlc1a2NHOXBi * blFvS1RvZ2MzUnlhVzVuSUhzZ2NtVjBkWEp1SUc1emRWOWhaRjl6Ykc5MFgzVnliQ2dwT3lCOUNtWjFibU4wYVc5dUlHNXpkVjlo * WkY5emJHOTBYMmgwYld3b2MzUnlhVzVuSUNSbGVIUnlZVU5zWVhOeklEMGdKeWNwT2lCemRISnBibWNnZXdvZ0lDQWdKSFFnUFNC * dWMzVmZZM0p2Y0Y5MGJHUW9LVHNLSUNBZ0lHbG1JQ2drZENBOVBUMGdKeWNnZkh3Z0lXbHVYMkZ5Y21GNUtDUjBMQ0J1YzNWZllX * UmZjMmwwWlhNb0tTd2dkSEoxWlNrcElISmxkSFZ5YmlBbkp6c0tJQ0FnSUNSamJITWdQU0FuYm5NdFlXUXRjMnh2ZENjZ0xpQW9K * R1Y0ZEhKaFEyeGhjM01nSVQwOUlDY25JRDhnSnlBbklDNGdKR1Y0ZEhKaFEyeGhjM01nT2lBbkp5azdDaUFnSUNBa1kyVnNiSE1n * UFNBbkp6c0tJQ0FnSUdadmNpQW9KR2tnUFNBd095QWthU0E4SURRNU95QWthU3NyS1NCN0NpQWdJQ0FnSUNBZ0pIVnliQ0E5SUc1 * emRWOWhaRjl6Ykc5MFgzVnliQ2drZENrN0NpQWdJQ0FnSUNBZ0pHUmxjM1FnUFNCb2RHMXNjM0JsWTJsaGJHTm9ZWEp6S0c1emRW * OTBjbUZrWlY5dmNtbG5hVzRvS1NBdUlDY3ZKeXdnUlU1VVgxRlZUMVJGVXl3Z0oxVlVSaTA0SnlrN0NpQWdJQ0FnSUNBZ0pHTmxi * R3h6SUM0OUlDYzhZU0JqYkdGemN6MGlibk10WVdRdFkyVnNiQ0lnYUhKbFpqMGlKeUF1SUNSa1pYTjBJQzRnSnlJZ2RHRnlaMlYw * UFNKZllteGhibXNpSUhKbGJEMGlibTl2Y0dWdVpYSWdibTl5WldabGNuSmxjaUlnZEdsMGJHVTlJa0ZrZG1WeWRHbHpaVzFsYm5R * aUlHRnlhV0V0YkdGaVpXdzlJa0ZrZG1WeWRHbHpaVzFsYm5RaVBqeHBiV2NnWVd4MFBTSkJaSFpsY25ScGMyVnRaVzUwSWlCemNt * TTlJaWNnTGlCb2RHMXNjM0JsWTJsaGJHTm9ZWEp6S0NSMWNtd3NJRVZPVkY5UlZVOVVSVk1zSUNkVlZFWXRPQ2NwSUM0Z0p5SWdj * bVZtWlhKeVpYSndiMnhwWTNrOUltNXZMWEpsWm1WeWNtVnlJajQ4TDJFK0p6c0tJQ0FnSUgwS0lDQWdJSEpsZEhWeWJpQW5QR0Z6 * YVdSbElHTnNZWE56UFNJbklDNGdhSFJ0YkhOd1pXTnBZV3hqYUdGeWN5Z2tZMnh6TENCRlRsUmZVVlZQVkVWVExDQW5WVlJHTFRn * bktTQXVJQ2NpSUdSaGRHRXRibk10WVdROUlqRWlQaWNnTGlBa1kyVnNiSE1nTGlBblBDOWhjMmxrWlQ0bk93cDlDaThxS2lCRGFH * RjBMVzl1YkhrNklHOXVaU0J6ZEhKbGRHTm9JR05sYkd3Z1ptOXlJR0VnY21WdGIzUmxJSEJoYm1VZ0tHNXZkQ0IwYUdVZ05Ea3Rk * R2xzWlNCaWIyRnlaQ2t1SUNvdkNtWjFibU4wYVc5dUlHNXpkVjloWkY5emJHOTBYMmgwYld4ZmIyNWxLSE4wY21sdVp5QWtjR0Z1 * WlNBOUlDZE1KeWs2SUhOMGNtbHVaeUI3Q2lBZ0lDQWtkQ0E5SUc1emRWOWpjbTl3WDNSc1pDZ3BPd29nSUNBZ2FXWWdLQ1IwSUQw * OVBTQW5KeUI4ZkNBaGFXNWZZWEp5WVhrb0pIUXNJRzV6ZFY5aFpGOXphWFJsY3lncExDQjBjblZsS1NrZ2NtVjBkWEp1SUNjbk93 * b2dJQ0FnSkhWeWJDQTlJRzV6ZFY5aFpGOXpiRzkwWDNWeWJDZ2tkQ2s3Q2lBZ0lDQnBaaUFvSkhWeWJDQTlQVDBnSnljcElISmxk * SFZ5YmlBbkp6c0tJQ0FnSUNSd1lXNWxJRDBnS0NSd1lXNWxJRDA5UFNBblVpY3BJRDhnSjFJbklEb2dKMHduT3dvZ0lDQWdKR1Js * YzNRZ1BTQm9kRzFzYzNCbFkybGhiR05vWVhKektHNXpkVjkwY21Ga1pWOXZjbWxuYVc0b0tTQXVJQ2N2Snl3Z1JVNVVYMUZWVDFS * RlV5d2dKMVZVUmkwNEp5azdDaUFnSUNBa1kyVnNiQ0E5SUNjOFlTQmpiR0Z6Y3owaWJuTXRZV1F0WTJWc2JDSWdhSEpsWmowaUp5 * QXVJQ1JrWlhOMElDNGdKeUlnZEdGeVoyVjBQU0pmWW14aGJtc2lJSEpsYkQwaWJtOXZjR1Z1WlhJZ2JtOXlaV1psY25KbGNpSWdk * R2wwYkdVOUlrRmtkbVZ5ZEdselpXMWxiblFpSUdGeWFXRXRiR0ZpWld3OUlrRmtkbVZ5ZEdselpXMWxiblFpUGp4cGJXY2dZV3gw * UFNKQlpIWmxjblJwYzJWdFpXNTBJaUJ6Y21NOUlpY2dMaUJvZEcxc2MzQmxZMmxoYkdOb1lYSnpLQ1IxY213c0lFVk9WRjlSVlU5 * VVJWTXNJQ2RWVkVZdE9DY3BJQzRnSnlJZ2NtVm1aWEp5WlhKd2IyeHBZM2s5SW01dkxYSmxabVZ5Y21WeUlqNDhMMkUrSnpzS0lD * QWdJSEpsZEhWeWJpQW5QR0Z6YVdSbElHTnNZWE56UFNKdWN5MWhaQzF6Ykc5MElpQmtZWFJoTFc1ekxXRmtJR1JoZEdFdGNHRnVa * VDBpSnlBdUlDUndZVzVsSUM0Z0p5SStKeUF1SUNSalpXeHNJQzRnSnp3dllYTnBaR1UrSnpzS2ZRb0tMeW9xSUVGa0xYSmxjRzl5 * ZENCbGJtUndiMmx1ZENCdmJteDVMaUJVY21Ga1pTQjJZV3hwWkdGMFpYTWdjMnh2ZEM5bGNHOWphQ0JoYm1RZ2IzZHVjeUJoWTJO * bGNIUmhibU5sTEFvZ0tpQmpiMjVtYVdkMWNtVmtJSFJoYTJWa2IzZHVJR0Z1WkNCemFHOTNhVzVuY3lCemRHRjBaUzRnVTJWdVpH * bHVaeUJoSUhKbGNHOXlkQ0JwY3lCdWIzUWdjSEp2YjJZZ2IyWWdZUW9nS2lCMFlXdGxaRzkzYml3Z2IzZHVaWEp6YUdsd0lHOXlJ * SEpsWm5WdVpEc2dkR2hwY3lCb1pXeHdaWElnWjNKaGJuUnpJRzV2SUdWamIyNXZiV2xqSUdGMWRHaHZjbWwwZVM0Z0tpOEtablZ1 * WTNScGIyNGdibk4xWDNKbGNHOXlkRjlsYm1Sd2IybHVkQ2dwT2lCemRISnBibWNnZXdvZ0lDQWdKSFFnUFNCdWMzVmZZM0p2Y0Y5 * MGJHUW9LVHNLSUNBZ0lHbG1JQ2drZENBOVBUMGdKeWNnZkh3Z0lXbHVYMkZ5Y21GNUtDUjBMQ0J1YzNWZllXUmZjMmwwWlhNb0tT * d2dkSEoxWlNrcElISmxkSFZ5YmlBbkp6c0tJQ0FnSUhKbGRIVnliaUJ1YzNWZmRISmhaR1ZmYjNKcFoybHVLQ2tnTGlBbkx6OWhj * R2s5WVdSZmNtVndiM0owSm1OeWIzQTlKeUF1SUhWeWJHVnVZMjlrWlNna2RDazdDbjBLTHlvZ1BUMDlQVDA5UFQwOVBUMDlQVDA5 * UFQwOVBUMDlJRVZPUkNCRlEwOU9UMDFaSzBsRVJVNVVTVlJaSUZSRlRFOU5SVkpGSUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFNB * cUx3PT0ifV19 * NSU-RECOVERY-V1-END */