From 139c4b859a5e780fe194756b9da900552dc4e3a7 Mon Sep 17 00:00:00 2001 From: jmcardon Date: Sat, 12 Oct 2024 13:18:04 -0400 Subject: [PATCH] Update to latest pact pin, fix gas and tests co-authored-by: chessai --- cabal.project | 4 +-- .../Genesis/Pact5Development0Payload.hs | 20 +++++------ .../Genesis/Pact5Development1to19Payload.hs | 20 +++++------ .../Genesis/Pact5InstantTimedCPM0Payload.hs | 20 +++++------ .../Pact5InstantTimedCPM1to9Payload.hs | 20 +++++------ .../BlockHeader/Genesis/Testnet050Payload.hs | 20 +++++------ .../Genesis/Testnet051to19Payload.hs | 20 +++++------ src/Chainweb/Pact/Backend/Utils.hs | 14 ++++---- src/Chainweb/Pact4/Backend/ChainwebPactDb.hs | 4 ++- src/Chainweb/Pact5/Backend/ChainwebPactDb.hs | 23 ++++++++++--- .../Test/Pact5/TransactionExecTest.hs | 34 +++++++++---------- 11 files changed, 107 insertions(+), 92 deletions(-) diff --git a/cabal.project b/cabal.project index 8b3ed4770..a4c1b07f9 100644 --- a/cabal.project +++ b/cabal.project @@ -86,8 +86,8 @@ source-repository-package source-repository-package type: git location: https://github.com/kadena-io/pact-5.git - tag: c51e26607b662e8201b417951c7ee53d711760e2 - --sha256: 1qypag6dlm5f922km5bnp9a96rsaqlig66d6d6csnjad6c4x4f40 + tag: 0aff0651cf37d463d6d4534a42c037cb00c0bf20 + --sha256: 0z6zl9fzsv3c3ig5lxcj6jvffllvg20x21rbvvw8sh4g7rbjs0xc source-repository-package type: git diff --git a/src/Chainweb/BlockHeader/Genesis/Pact5Development0Payload.hs b/src/Chainweb/BlockHeader/Genesis/Pact5Development0Payload.hs index 1676430f6..c91a5bf32 100644 --- a/src/Chainweb/BlockHeader/Genesis/Pact5Development0Payload.hs +++ b/src/Chainweb/BlockHeader/Genesis/Pact5Development0Payload.hs @@ -21,19 +21,19 @@ payloadBlock where actualHash, expectedHash :: BlockPayloadHash actualHash = _payloadWithOutputsPayloadHash payload - expectedHash = unsafeFromText "try68j8ecHmHX6e58nLaRPP6GpU1JVbB_q9Iegl39S4" + expectedHash = unsafeFromText "Aq8kH2TOht5wRP-bDUfaah4QZlOLUxmC7yIIHSocKmo" payload = newPayloadWithOutputs minerData coinbase txs minerData = unsafeFromText "eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119" coinbase = unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6Ik5PX0NPSU5CQVNFIn0sInJlcUtleSI6IkRsZFJ3Q2JsUTdMb3F5NndZSm5hb2RIbDMwZDNqM2VILXF0RnpmRXY0NmciLCJsb2dzIjpudWxsLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjpudWxsfQ" txs = V.fromList - [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggZms4ajZKMUI5WUFaTzBBbEI4QllRRklMZHg1N2Q3bmJXaHdGcHItLXFMbyJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlNRMVFncFNSMERqMEtLSHRHRmtLX2dWbkRGdWpJVkJCWTRQY25RQmdOYnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") - , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIE4tRDhmaUxuSmRsTGt4Q2dMcHdCM25odDd1bk1CYmstQTRVdy0zMUNnLXcifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJDNDJQSVBoeGN5NVRULU5sSXNqTEZnRjRfR2dWYVZRN3EzM1oxR3JUVGpZIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") - , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggY2JQU0FpNS1Yd29SbzBpMlNDQWE5cDRJNVJzcHpTYUJwbThhcTB2M21rYyJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6InVtMmdlUDBhZnpwSVFKS0dydUY0djZqZzhYa25sem5lQXdNa2RNWF9BZEEiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") - , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6IjdLQjJVUGZGX3RJTUp4S1VhTlZ2RUFjdkx1amN0bzNQWnVwY0RCcFF1MzAiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") - , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIDBySDJ5Q1pucmNEOWlNc3EtTm01Nzh4dUR4VUpvTmZKeXBZeUVrdUNnS00ifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiI2OEkyQ2dmZTNzQ3RRTVlqTi1rMnVvZ2JGYnpnbzNOMUhoVHA5ZEZMMEs0IiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") - , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiWXJLZ3BSdjVGU0JYQnhJWVBDMGlUNDNSLUJuZ2dkZTVLU042N280OVpMQSIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") - , (unsafeFromText "eyJoYXNoIjoiWE5BNmxPSjFXLTdYWXY1WWI0QXFsNzRveFlJN09KcWpPUVQ1b1k0OHEtZyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiYWxsb2NhdGlvbi10ZXN0MDFcIjpbXCI3MDExYzM3OTE0MGZmODk5ZjdlNjEzYWMwYTk3ODRhN2MwYTUxNWQzMGZlMGFiMmIwYzA3ZTVhYTE3NjM1ZTNlXCJdLFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcImFsbG9jYXRpb24wMFwiOltcImQ4MmQwZGNkZTk4MjU1MDVkODZhZmI2ZGNjMTA0MTFkNmI2N2E0MjlhNzllMjFiZGE0YmIxMTliZjI4YWI4NzFcIl0sXCJhbGxvY2F0aW9uLXRlc3QwMlwiOltcIjA2NTQ0ZTIyYmZlZjIzMGQ2ZDIyZjk0ODZhYzZjYjc2YmYyNThlYmZiZjAxMzdlZTU4ZjY1NzQzZTFhNWI4YzRcIl0sXCJhbGxvY2F0aW9uMDFcIjpbXCJiNGM4YTNlYTkxZDMxNDZiMDU2MDk5NDc0MGYwZTNlZWQ5MWM1OWQyZWVjYTFkYzk5ZjBjMjg3Mjg0NWMyOTRkXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWtleXNldHNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IlhOQTZsT0oxVy03WFl2NVliNEFxbDc0b3hZSTdPSnFqT1FUNW9ZNDhxLWciLCJsb2dzIjoiWGdmU1Raa1E4Wnl5bXZORXBLbnNONE40b0Z5WUcxNkxKbUNSVXdHZXRfOCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") - , (unsafeFromText "eyJoYXNoIjoiNWtxZ0tzWWtwbjZCcS1KUnhNYnA1VG9jUWhRWGRJVVNiM1NGQm1Ba3VWcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMFxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMTVUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMFxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHRpbWUgXFxcIjIxMDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMVxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMlxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24tdGVzdDAxXFxcIiAodGltZSBcXFwiMTkwMC0xMC0zMVQxODowMDowMFpcXFwiKSBcXFwiYWxsb2NhdGlvbi10ZXN0MDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24tdGVzdDAyXFxcIiAyMDAwMDAwLjApXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJkZXZuZXQtYWxsb2NhdGlvbnNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiI1a3FnS3NZa3BuNkJxLUpSeE1icDVUb2NRaFFYZElVU2IzU0ZCbUFrdVZzIiwibG9ncyI6InhxMzBnWTZiclBHSjFjOHc2YzE1UWxYNWIwQUlXVjJFaXRPSjJEYWFKQnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") - , (unsafeFromText "eyJoYXNoIjoiY2tiMmZnNWVJeXRoS3U5YVN3TkhIWllsWVY2V1R1NGlYaUZDamc5WFFLWSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wic2VuZGVyMDdcIjpbXCI0YzMxZGM5ZWU3ZjI0MTc3Zjc4YjZmNTE4MDEyYTIwODMyNmUyYWYxZjM3YmIwYTI0MDViNTA1NmQwY2FkNjI4XCJdLFwic2VuZGVyMDFcIjpbXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDZcIjpbXCI1ZmZjMWY3ZmVmN2E0NDczODYyNTc2MmY3NWE0MjI5NDU0OTUxZTAzZjJhZmM2ZjgxMzA5YzBjMWJkZjllZTZmXCJdLFwic2VuZGVyMDBcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdLFwiZTdmN1wiOltcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcIl0sXCJzZW5kZXIwNVwiOltcImYwOWQ4ZjYzOTRhZWE0MjVmZTY3ODNkODhjZDgxMzYzZDgwMTdmMTZhZmQzNzExYzU3NWJlMGY1Y2Q1YzliYjlcIl0sXCJzZW5kZXIwNFwiOltcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl0sXCJtdWx0aS0wMi0wMy0wNC1hbnlcIjp7XCJwcmVkXCI6XCJrZXlzLWFueVwiLFwia2V5c1wiOltcIjNhOWRkNTMyZDczZGFjZTE5NWRiYjY0ZDFkYmE2NTcyZmI3ODNkMGZkZDMyNDY4NWUzMmZiZGEyZjg5Zjk5YTZcIixcIjQzZjJhZGIxZGUxOTIwMDBjYjM3NzdiYWNjN2Y5ODNiNjYxNGZkOWMxNzE1Y2Q0NGNkNDg0YjZkM2EwZDM0YzhcIixcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl19LFwic2VuZGVyMDlcIjpbXCJjNTlkOTg0MGIwYjY2MDkwODM2NTQ2YjdlYjRhNzM2MDYyNTc1MjdlYzhjMmI0ODIzMDBmZDIyOTI2NGIwN2U2XCJdLFwic2VuZGVyMDNcIjpbXCI0M2YyYWRiMWRlMTkyMDAwY2IzNzc3YmFjYzdmOTgzYjY2MTRmZDljMTcxNWNkNDRjZDQ4NGI2ZDNhMGQzNGM4XCJdLFwibXVsdGktMDAtMDFcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCIsXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDhcIjpbXCI2M2IyZWJhNGVkNzBkNDYxMmQzZTdiYzkwZGIyZmJmNGM3NmY3YjA3NDM2M2U4NmQ3M2YwYmM2MTdmOGU4YjgxXCJdLFwic2VuZGVyMDJcIjpbXCIzYTlkZDUzMmQ3M2RhY2UxOTVkYmI2NGQxZGJhNjU3MmZiNzgzZDBmZGQzMjQ2ODVlMzJmYmRhMmY4OWY5OWE2XCJdfSxcImNvZGVcIjpcIihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMFxcXCIpIDEwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMVxcXCIpIDExMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMlxcXCIpIDEyMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwM1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwM1xcXCIpIDEzMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNFxcXCIpIDE0MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNVxcXCIpIDE1MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNlxcXCIpIDE2MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwN1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwN1xcXCIpIDE3MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOFxcXCIpIDE4MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOVxcXCIpIDE5MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMC0wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJtdWx0aS0wMC0wMVxcXCIpIDEwMTAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMi0wMy0wNC1hbnlcXFwiIChyZWFkLWtleXNldCBcXFwibXVsdGktMDItMDMtMDQtYW55XFxcIikgMTIzNDAwMDAwLjApXFxuXFxuKGNvaW4uY29pbmJhc2UgXFxcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcXFwiIChyZWFkLWtleXNldCBcXFwiZTdmN1xcXCIpIDE1MC4wKVxcblxcbjsgZW5vdWdoIHRvIGNvdmVyIHRoZSBnYXMgY29zdHMgZm9yIGFsbG9jYXRpb24gcmVsZWFzZVxcbihjb2luLmNvaW5iYXNlIFxcXCJhbGxvY2F0aW9uMDBcXFwiIChrZXlzZXQtcmVmLWd1YXJkIFxcXCJhbGxvY2F0aW9uMDBcXFwiKSAxMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiYWxsb2NhdGlvbjAxXFxcIiAoa2V5c2V0LXJlZi1ndWFyZCBcXFwiYWxsb2NhdGlvbjAxXFxcIikgMTAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImFsbG9jYXRpb24wMlxcXCIgKGtleXNldC1yZWYtZ3VhcmQgXFxcImFsbG9jYXRpb24wMlxcXCIpIDEwMDAwMC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWdyYW50czBcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJja2IyZmc1ZUl5dGhLdTlhU3dOSEhaWWxZVjZXVHU0aVhpRkNqZzlYUUtZIiwibG9ncyI6IkpydDFMM1lpTTJUN2d0Qi05QVVEMzBUeWhiMU0yY1hZMWpoRVVzTGdMSjQiLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJzZW5kZXIwMCIsMTAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMSIsMTEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMiIsMTIwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMyIsMTMwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNCIsMTQwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNSIsMTUwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNiIsMTYwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNyIsMTcwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOCIsMTgwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOSIsMTkwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMC0wMSIsMTAxMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMi0wMy0wNC1hbnkiLDEyMzQwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwiZTdmNzYzNGU5MjU1NDFmMzY4YjgyN2FkNWM3MjQyMTkwNTEwMGY2MjA1Mjg1YTc4YzE5ZDdiNGEzODcxMTgwNSIsMTUwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJhbGxvY2F0aW9uMDAiLDEwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwiYWxsb2NhdGlvbjAxIiwxMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsImFsbG9jYXRpb24wMiIsMTAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifV0sIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjh9") + [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggTm1kUnRzekN3YWNqSEd5eUU5Tl9mbFFNUlJCaGNIVkZQNE9qaGlQZWoxRSJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlB3eDlycG9kS2prSGNPUlh2WFVRSUpjRVZRZDhPSXRNM0FlakNFRExMVXMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") + , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIGg4OWljM2doejIzUmprMHBITkt0Rk93cnZTczdtYm11cWxvVlhPaGwyR0kifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJSUDhnMUJrZnkyQjN1bHE0WWU4amF1VlRZcGpqRXlaLWtydGJ5SVg2STRnIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") + , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggWXhFLUtnQzZKbUttQ2NnS1RKbWxFbl9JNThJNEVYbWhmcnZ6WDdiZXJZayJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6IjFTQmJBNHVzS0E5OFNlX09WRUdkcVk5WjJoSW1jVmcydWpISDJkM1ZmeEkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") + , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6InFsZDBleGFpdDNNRVdYcl9UeFZPcm9BWGNfcGlHSlhSVGJSMTBSb0NsMUkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") + , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIGlJV0FQMW9lbl9rcFhqRmJuUU04N0FKUlpJZ3RzZlpjQXdZckV5MjFSV1EifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiJ3TXdXV3hkSFVuU1VOWXJ1RXlISEtTTzUyeGtkVXU0TXBmbE1FcHYyT05FIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") + , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiaVJ4cktxek5NaU1IbkRPZGFpSG14TmYxWjJKMl9Qb3QzWG50WE5sd0JhZyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") + , (unsafeFromText "eyJoYXNoIjoiWE5BNmxPSjFXLTdYWXY1WWI0QXFsNzRveFlJN09KcWpPUVQ1b1k0OHEtZyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiYWxsb2NhdGlvbi10ZXN0MDFcIjpbXCI3MDExYzM3OTE0MGZmODk5ZjdlNjEzYWMwYTk3ODRhN2MwYTUxNWQzMGZlMGFiMmIwYzA3ZTVhYTE3NjM1ZTNlXCJdLFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcImFsbG9jYXRpb24wMFwiOltcImQ4MmQwZGNkZTk4MjU1MDVkODZhZmI2ZGNjMTA0MTFkNmI2N2E0MjlhNzllMjFiZGE0YmIxMTliZjI4YWI4NzFcIl0sXCJhbGxvY2F0aW9uLXRlc3QwMlwiOltcIjA2NTQ0ZTIyYmZlZjIzMGQ2ZDIyZjk0ODZhYzZjYjc2YmYyNThlYmZiZjAxMzdlZTU4ZjY1NzQzZTFhNWI4YzRcIl0sXCJhbGxvY2F0aW9uMDFcIjpbXCJiNGM4YTNlYTkxZDMxNDZiMDU2MDk5NDc0MGYwZTNlZWQ5MWM1OWQyZWVjYTFkYzk5ZjBjMjg3Mjg0NWMyOTRkXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWtleXNldHNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IlhOQTZsT0oxVy03WFl2NVliNEFxbDc0b3hZSTdPSnFqT1FUNW9ZNDhxLWciLCJsb2dzIjoiYXJRSWpQVGRrcXhoQTNjWl9WaVE3OXM3Uk5XRTlGV2Rha0xWdXl4Nlc0YyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") + , (unsafeFromText "eyJoYXNoIjoiNWtxZ0tzWWtwbjZCcS1KUnhNYnA1VG9jUWhRWGRJVVNiM1NGQm1Ba3VWcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMFxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMTVUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMFxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHRpbWUgXFxcIjIxMDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMVxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMlxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24tdGVzdDAxXFxcIiAodGltZSBcXFwiMTkwMC0xMC0zMVQxODowMDowMFpcXFwiKSBcXFwiYWxsb2NhdGlvbi10ZXN0MDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24tdGVzdDAyXFxcIiAyMDAwMDAwLjApXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJkZXZuZXQtYWxsb2NhdGlvbnNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiI1a3FnS3NZa3BuNkJxLUpSeE1icDVUb2NRaFFYZElVU2IzU0ZCbUFrdVZzIiwibG9ncyI6IkhpX3ZfVEhFT2s2aEJFRU0yWmV2Vzh3eVJsQWpUZzNjVUQydXBlVkx0b1UiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") + , (unsafeFromText "eyJoYXNoIjoiY2tiMmZnNWVJeXRoS3U5YVN3TkhIWllsWVY2V1R1NGlYaUZDamc5WFFLWSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wic2VuZGVyMDdcIjpbXCI0YzMxZGM5ZWU3ZjI0MTc3Zjc4YjZmNTE4MDEyYTIwODMyNmUyYWYxZjM3YmIwYTI0MDViNTA1NmQwY2FkNjI4XCJdLFwic2VuZGVyMDFcIjpbXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDZcIjpbXCI1ZmZjMWY3ZmVmN2E0NDczODYyNTc2MmY3NWE0MjI5NDU0OTUxZTAzZjJhZmM2ZjgxMzA5YzBjMWJkZjllZTZmXCJdLFwic2VuZGVyMDBcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdLFwiZTdmN1wiOltcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcIl0sXCJzZW5kZXIwNVwiOltcImYwOWQ4ZjYzOTRhZWE0MjVmZTY3ODNkODhjZDgxMzYzZDgwMTdmMTZhZmQzNzExYzU3NWJlMGY1Y2Q1YzliYjlcIl0sXCJzZW5kZXIwNFwiOltcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl0sXCJtdWx0aS0wMi0wMy0wNC1hbnlcIjp7XCJwcmVkXCI6XCJrZXlzLWFueVwiLFwia2V5c1wiOltcIjNhOWRkNTMyZDczZGFjZTE5NWRiYjY0ZDFkYmE2NTcyZmI3ODNkMGZkZDMyNDY4NWUzMmZiZGEyZjg5Zjk5YTZcIixcIjQzZjJhZGIxZGUxOTIwMDBjYjM3NzdiYWNjN2Y5ODNiNjYxNGZkOWMxNzE1Y2Q0NGNkNDg0YjZkM2EwZDM0YzhcIixcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl19LFwic2VuZGVyMDlcIjpbXCJjNTlkOTg0MGIwYjY2MDkwODM2NTQ2YjdlYjRhNzM2MDYyNTc1MjdlYzhjMmI0ODIzMDBmZDIyOTI2NGIwN2U2XCJdLFwic2VuZGVyMDNcIjpbXCI0M2YyYWRiMWRlMTkyMDAwY2IzNzc3YmFjYzdmOTgzYjY2MTRmZDljMTcxNWNkNDRjZDQ4NGI2ZDNhMGQzNGM4XCJdLFwibXVsdGktMDAtMDFcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCIsXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDhcIjpbXCI2M2IyZWJhNGVkNzBkNDYxMmQzZTdiYzkwZGIyZmJmNGM3NmY3YjA3NDM2M2U4NmQ3M2YwYmM2MTdmOGU4YjgxXCJdLFwic2VuZGVyMDJcIjpbXCIzYTlkZDUzMmQ3M2RhY2UxOTVkYmI2NGQxZGJhNjU3MmZiNzgzZDBmZGQzMjQ2ODVlMzJmYmRhMmY4OWY5OWE2XCJdfSxcImNvZGVcIjpcIihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMFxcXCIpIDEwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMVxcXCIpIDExMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMlxcXCIpIDEyMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwM1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwM1xcXCIpIDEzMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNFxcXCIpIDE0MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNVxcXCIpIDE1MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNlxcXCIpIDE2MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwN1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwN1xcXCIpIDE3MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOFxcXCIpIDE4MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOVxcXCIpIDE5MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMC0wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJtdWx0aS0wMC0wMVxcXCIpIDEwMTAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMi0wMy0wNC1hbnlcXFwiIChyZWFkLWtleXNldCBcXFwibXVsdGktMDItMDMtMDQtYW55XFxcIikgMTIzNDAwMDAwLjApXFxuXFxuKGNvaW4uY29pbmJhc2UgXFxcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcXFwiIChyZWFkLWtleXNldCBcXFwiZTdmN1xcXCIpIDE1MC4wKVxcblxcbjsgZW5vdWdoIHRvIGNvdmVyIHRoZSBnYXMgY29zdHMgZm9yIGFsbG9jYXRpb24gcmVsZWFzZVxcbihjb2luLmNvaW5iYXNlIFxcXCJhbGxvY2F0aW9uMDBcXFwiIChrZXlzZXQtcmVmLWd1YXJkIFxcXCJhbGxvY2F0aW9uMDBcXFwiKSAxMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiYWxsb2NhdGlvbjAxXFxcIiAoa2V5c2V0LXJlZi1ndWFyZCBcXFwiYWxsb2NhdGlvbjAxXFxcIikgMTAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImFsbG9jYXRpb24wMlxcXCIgKGtleXNldC1yZWYtZ3VhcmQgXFxcImFsbG9jYXRpb24wMlxcXCIpIDEwMDAwMC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWdyYW50czBcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJja2IyZmc1ZUl5dGhLdTlhU3dOSEhaWWxZVjZXVHU0aVhpRkNqZzlYUUtZIiwibG9ncyI6ImFCUXM2aDJGVUN1a00tM0pjQmdLZGFvRU1Ta3p2OTJkM0VmT2t5MXNrMmciLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJzZW5kZXIwMCIsMTAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMSIsMTEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMiIsMTIwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMyIsMTMwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNCIsMTQwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNSIsMTUwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNiIsMTYwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNyIsMTcwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOCIsMTgwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOSIsMTkwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMC0wMSIsMTAxMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMi0wMy0wNC1hbnkiLDEyMzQwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwiZTdmNzYzNGU5MjU1NDFmMzY4YjgyN2FkNWM3MjQyMTkwNTEwMGY2MjA1Mjg1YTc4YzE5ZDdiNGEzODcxMTgwNSIsMTUwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJhbGxvY2F0aW9uMDAiLDEwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwiYWxsb2NhdGlvbjAxIiwxMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsImFsbG9jYXRpb24wMiIsMTAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifV0sIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjh9") ] diff --git a/src/Chainweb/BlockHeader/Genesis/Pact5Development1to19Payload.hs b/src/Chainweb/BlockHeader/Genesis/Pact5Development1to19Payload.hs index 3852608c7..ae91a3080 100644 --- a/src/Chainweb/BlockHeader/Genesis/Pact5Development1to19Payload.hs +++ b/src/Chainweb/BlockHeader/Genesis/Pact5Development1to19Payload.hs @@ -21,19 +21,19 @@ payloadBlock where actualHash, expectedHash :: BlockPayloadHash actualHash = _payloadWithOutputsPayloadHash payload - expectedHash = unsafeFromText "qtEDWh5yoRYfpkUntSVQaFWOeOPjiRj2JvtzY1EG7Us" + expectedHash = unsafeFromText "l8sBeuPmL-evlLf-oApMqOyxX8MH6PQxQpg03Sp_Uj8" payload = newPayloadWithOutputs minerData coinbase txs minerData = unsafeFromText "eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119" coinbase = unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6Ik5PX0NPSU5CQVNFIn0sInJlcUtleSI6IkRsZFJ3Q2JsUTdMb3F5NndZSm5hb2RIbDMwZDNqM2VILXF0RnpmRXY0NmciLCJsb2dzIjpudWxsLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjpudWxsfQ" txs = V.fromList - [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggZms4ajZKMUI5WUFaTzBBbEI4QllRRklMZHg1N2Q3bmJXaHdGcHItLXFMbyJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlNRMVFncFNSMERqMEtLSHRHRmtLX2dWbkRGdWpJVkJCWTRQY25RQmdOYnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") - , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIE4tRDhmaUxuSmRsTGt4Q2dMcHdCM25odDd1bk1CYmstQTRVdy0zMUNnLXcifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJDNDJQSVBoeGN5NVRULU5sSXNqTEZnRjRfR2dWYVZRN3EzM1oxR3JUVGpZIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") - , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggY2JQU0FpNS1Yd29SbzBpMlNDQWE5cDRJNVJzcHpTYUJwbThhcTB2M21rYyJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6InVtMmdlUDBhZnpwSVFKS0dydUY0djZqZzhYa25sem5lQXdNa2RNWF9BZEEiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") - , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6IjdLQjJVUGZGX3RJTUp4S1VhTlZ2RUFjdkx1amN0bzNQWnVwY0RCcFF1MzAiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") - , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIDBySDJ5Q1pucmNEOWlNc3EtTm01Nzh4dUR4VUpvTmZKeXBZeUVrdUNnS00ifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiI2OEkyQ2dmZTNzQ3RRTVlqTi1rMnVvZ2JGYnpnbzNOMUhoVHA5ZEZMMEs0IiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") - , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiWXJLZ3BSdjVGU0JYQnhJWVBDMGlUNDNSLUJuZ2dkZTVLU042N280OVpMQSIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") - , (unsafeFromText "eyJoYXNoIjoiWE5BNmxPSjFXLTdYWXY1WWI0QXFsNzRveFlJN09KcWpPUVQ1b1k0OHEtZyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiYWxsb2NhdGlvbi10ZXN0MDFcIjpbXCI3MDExYzM3OTE0MGZmODk5ZjdlNjEzYWMwYTk3ODRhN2MwYTUxNWQzMGZlMGFiMmIwYzA3ZTVhYTE3NjM1ZTNlXCJdLFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcImFsbG9jYXRpb24wMFwiOltcImQ4MmQwZGNkZTk4MjU1MDVkODZhZmI2ZGNjMTA0MTFkNmI2N2E0MjlhNzllMjFiZGE0YmIxMTliZjI4YWI4NzFcIl0sXCJhbGxvY2F0aW9uLXRlc3QwMlwiOltcIjA2NTQ0ZTIyYmZlZjIzMGQ2ZDIyZjk0ODZhYzZjYjc2YmYyNThlYmZiZjAxMzdlZTU4ZjY1NzQzZTFhNWI4YzRcIl0sXCJhbGxvY2F0aW9uMDFcIjpbXCJiNGM4YTNlYTkxZDMxNDZiMDU2MDk5NDc0MGYwZTNlZWQ5MWM1OWQyZWVjYTFkYzk5ZjBjMjg3Mjg0NWMyOTRkXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWtleXNldHNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IlhOQTZsT0oxVy03WFl2NVliNEFxbDc0b3hZSTdPSnFqT1FUNW9ZNDhxLWciLCJsb2dzIjoiWGdmU1Raa1E4Wnl5bXZORXBLbnNONE40b0Z5WUcxNkxKbUNSVXdHZXRfOCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") - , (unsafeFromText "eyJoYXNoIjoiNWtxZ0tzWWtwbjZCcS1KUnhNYnA1VG9jUWhRWGRJVVNiM1NGQm1Ba3VWcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMFxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMTVUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMFxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHRpbWUgXFxcIjIxMDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMVxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMlxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24tdGVzdDAxXFxcIiAodGltZSBcXFwiMTkwMC0xMC0zMVQxODowMDowMFpcXFwiKSBcXFwiYWxsb2NhdGlvbi10ZXN0MDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24tdGVzdDAyXFxcIiAyMDAwMDAwLjApXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJkZXZuZXQtYWxsb2NhdGlvbnNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiI1a3FnS3NZa3BuNkJxLUpSeE1icDVUb2NRaFFYZElVU2IzU0ZCbUFrdVZzIiwibG9ncyI6InhxMzBnWTZiclBHSjFjOHc2YzE1UWxYNWIwQUlXVjJFaXRPSjJEYWFKQnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") - , (unsafeFromText "eyJoYXNoIjoiZjIxVTFJRnlRN0ZfLTRlTnR6QTFuWnZjQ0g5cnY5ZnZsNWM1a0RyNXFsdyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wic2VuZGVyMDdcIjpbXCI0YzMxZGM5ZWU3ZjI0MTc3Zjc4YjZmNTE4MDEyYTIwODMyNmUyYWYxZjM3YmIwYTI0MDViNTA1NmQwY2FkNjI4XCJdLFwic2VuZGVyMDFcIjpbXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDZcIjpbXCI1ZmZjMWY3ZmVmN2E0NDczODYyNTc2MmY3NWE0MjI5NDU0OTUxZTAzZjJhZmM2ZjgxMzA5YzBjMWJkZjllZTZmXCJdLFwic2VuZGVyMDBcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdLFwiZTdmN1wiOltcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcIl0sXCJzZW5kZXIwNVwiOltcImYwOWQ4ZjYzOTRhZWE0MjVmZTY3ODNkODhjZDgxMzYzZDgwMTdmMTZhZmQzNzExYzU3NWJlMGY1Y2Q1YzliYjlcIl0sXCJzZW5kZXIwNFwiOltcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl0sXCJtdWx0aS0wMi0wMy0wNC1hbnlcIjp7XCJwcmVkXCI6XCJrZXlzLWFueVwiLFwia2V5c1wiOltcIjNhOWRkNTMyZDczZGFjZTE5NWRiYjY0ZDFkYmE2NTcyZmI3ODNkMGZkZDMyNDY4NWUzMmZiZGEyZjg5Zjk5YTZcIixcIjQzZjJhZGIxZGUxOTIwMDBjYjM3NzdiYWNjN2Y5ODNiNjYxNGZkOWMxNzE1Y2Q0NGNkNDg0YjZkM2EwZDM0YzhcIixcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl19LFwic2VuZGVyMDlcIjpbXCJjNTlkOTg0MGIwYjY2MDkwODM2NTQ2YjdlYjRhNzM2MDYyNTc1MjdlYzhjMmI0ODIzMDBmZDIyOTI2NGIwN2U2XCJdLFwic2VuZGVyMDNcIjpbXCI0M2YyYWRiMWRlMTkyMDAwY2IzNzc3YmFjYzdmOTgzYjY2MTRmZDljMTcxNWNkNDRjZDQ4NGI2ZDNhMGQzNGM4XCJdLFwibXVsdGktMDAtMDFcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCIsXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDhcIjpbXCI2M2IyZWJhNGVkNzBkNDYxMmQzZTdiYzkwZGIyZmJmNGM3NmY3YjA3NDM2M2U4NmQ3M2YwYmM2MTdmOGU4YjgxXCJdLFwic2VuZGVyMDJcIjpbXCIzYTlkZDUzMmQ3M2RhY2UxOTVkYmI2NGQxZGJhNjU3MmZiNzgzZDBmZGQzMjQ2ODVlMzJmYmRhMmY4OWY5OWE2XCJdfSxcImNvZGVcIjpcIihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMFxcXCIpIDEwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMVxcXCIpIDExMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMlxcXCIpIDEyMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwM1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwM1xcXCIpIDEzMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNFxcXCIpIDE0MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNVxcXCIpIDE1MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNlxcXCIpIDE2MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwN1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwN1xcXCIpIDE3MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOFxcXCIpIDE4MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOVxcXCIpIDE5MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMC0wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJtdWx0aS0wMC0wMVxcXCIpIDEwMTAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMi0wMy0wNC1hbnlcXFwiIChyZWFkLWtleXNldCBcXFwibXVsdGktMDItMDMtMDQtYW55XFxcIikgMTIzNDAwMDAwLjApXFxuXFxuKGNvaW4uY29pbmJhc2UgXFxcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcXFwiIChyZWFkLWtleXNldCBcXFwiZTdmN1xcXCIpIDE1MC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWdyYW50c05cIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJmMjFVMUlGeVE3Rl8tNGVOdHpBMW5admNDSDlydjlmdmw1YzVrRHI1cWx3IiwibG9ncyI6IklFeEZDOVg1bDJ6N3JucnlYTG02RzZXc2QzOTlvcXBaekZubkdiQWowYU0iLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJzZW5kZXIwMCIsMTAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMSIsMTEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMiIsMTIwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMyIsMTMwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNCIsMTQwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNSIsMTUwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNiIsMTYwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNyIsMTcwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOCIsMTgwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOSIsMTkwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMC0wMSIsMTAxMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMi0wMy0wNC1hbnkiLDEyMzQwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwiZTdmNzYzNGU5MjU1NDFmMzY4YjgyN2FkNWM3MjQyMTkwNTEwMGY2MjA1Mjg1YTc4YzE5ZDdiNGEzODcxMTgwNSIsMTUwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifV0sIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjh9") + [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggTm1kUnRzekN3YWNqSEd5eUU5Tl9mbFFNUlJCaGNIVkZQNE9qaGlQZWoxRSJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlB3eDlycG9kS2prSGNPUlh2WFVRSUpjRVZRZDhPSXRNM0FlakNFRExMVXMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") + , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIGg4OWljM2doejIzUmprMHBITkt0Rk93cnZTczdtYm11cWxvVlhPaGwyR0kifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJSUDhnMUJrZnkyQjN1bHE0WWU4amF1VlRZcGpqRXlaLWtydGJ5SVg2STRnIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") + , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggWXhFLUtnQzZKbUttQ2NnS1RKbWxFbl9JNThJNEVYbWhmcnZ6WDdiZXJZayJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6IjFTQmJBNHVzS0E5OFNlX09WRUdkcVk5WjJoSW1jVmcydWpISDJkM1ZmeEkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") + , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6InFsZDBleGFpdDNNRVdYcl9UeFZPcm9BWGNfcGlHSlhSVGJSMTBSb0NsMUkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") + , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIGlJV0FQMW9lbl9rcFhqRmJuUU04N0FKUlpJZ3RzZlpjQXdZckV5MjFSV1EifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiJ3TXdXV3hkSFVuU1VOWXJ1RXlISEtTTzUyeGtkVXU0TXBmbE1FcHYyT05FIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") + , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiaVJ4cktxek5NaU1IbkRPZGFpSG14TmYxWjJKMl9Qb3QzWG50WE5sd0JhZyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") + , (unsafeFromText "eyJoYXNoIjoiWE5BNmxPSjFXLTdYWXY1WWI0QXFsNzRveFlJN09KcWpPUVQ1b1k0OHEtZyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiYWxsb2NhdGlvbi10ZXN0MDFcIjpbXCI3MDExYzM3OTE0MGZmODk5ZjdlNjEzYWMwYTk3ODRhN2MwYTUxNWQzMGZlMGFiMmIwYzA3ZTVhYTE3NjM1ZTNlXCJdLFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcImFsbG9jYXRpb24wMFwiOltcImQ4MmQwZGNkZTk4MjU1MDVkODZhZmI2ZGNjMTA0MTFkNmI2N2E0MjlhNzllMjFiZGE0YmIxMTliZjI4YWI4NzFcIl0sXCJhbGxvY2F0aW9uLXRlc3QwMlwiOltcIjA2NTQ0ZTIyYmZlZjIzMGQ2ZDIyZjk0ODZhYzZjYjc2YmYyNThlYmZiZjAxMzdlZTU4ZjY1NzQzZTFhNWI4YzRcIl0sXCJhbGxvY2F0aW9uMDFcIjpbXCJiNGM4YTNlYTkxZDMxNDZiMDU2MDk5NDc0MGYwZTNlZWQ5MWM1OWQyZWVjYTFkYzk5ZjBjMjg3Mjg0NWMyOTRkXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWtleXNldHNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IlhOQTZsT0oxVy03WFl2NVliNEFxbDc0b3hZSTdPSnFqT1FUNW9ZNDhxLWciLCJsb2dzIjoiYXJRSWpQVGRrcXhoQTNjWl9WaVE3OXM3Uk5XRTlGV2Rha0xWdXl4Nlc0YyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") + , (unsafeFromText "eyJoYXNoIjoiNWtxZ0tzWWtwbjZCcS1KUnhNYnA1VG9jUWhRWGRJVVNiM1NGQm1Ba3VWcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMFxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMTVUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMFxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHRpbWUgXFxcIjIxMDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMVxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMlxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24tdGVzdDAxXFxcIiAodGltZSBcXFwiMTkwMC0xMC0zMVQxODowMDowMFpcXFwiKSBcXFwiYWxsb2NhdGlvbi10ZXN0MDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24tdGVzdDAyXFxcIiAyMDAwMDAwLjApXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJkZXZuZXQtYWxsb2NhdGlvbnNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiI1a3FnS3NZa3BuNkJxLUpSeE1icDVUb2NRaFFYZElVU2IzU0ZCbUFrdVZzIiwibG9ncyI6IkhpX3ZfVEhFT2s2aEJFRU0yWmV2Vzh3eVJsQWpUZzNjVUQydXBlVkx0b1UiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") + , (unsafeFromText "eyJoYXNoIjoiZjIxVTFJRnlRN0ZfLTRlTnR6QTFuWnZjQ0g5cnY5ZnZsNWM1a0RyNXFsdyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wic2VuZGVyMDdcIjpbXCI0YzMxZGM5ZWU3ZjI0MTc3Zjc4YjZmNTE4MDEyYTIwODMyNmUyYWYxZjM3YmIwYTI0MDViNTA1NmQwY2FkNjI4XCJdLFwic2VuZGVyMDFcIjpbXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDZcIjpbXCI1ZmZjMWY3ZmVmN2E0NDczODYyNTc2MmY3NWE0MjI5NDU0OTUxZTAzZjJhZmM2ZjgxMzA5YzBjMWJkZjllZTZmXCJdLFwic2VuZGVyMDBcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdLFwiZTdmN1wiOltcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcIl0sXCJzZW5kZXIwNVwiOltcImYwOWQ4ZjYzOTRhZWE0MjVmZTY3ODNkODhjZDgxMzYzZDgwMTdmMTZhZmQzNzExYzU3NWJlMGY1Y2Q1YzliYjlcIl0sXCJzZW5kZXIwNFwiOltcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl0sXCJtdWx0aS0wMi0wMy0wNC1hbnlcIjp7XCJwcmVkXCI6XCJrZXlzLWFueVwiLFwia2V5c1wiOltcIjNhOWRkNTMyZDczZGFjZTE5NWRiYjY0ZDFkYmE2NTcyZmI3ODNkMGZkZDMyNDY4NWUzMmZiZGEyZjg5Zjk5YTZcIixcIjQzZjJhZGIxZGUxOTIwMDBjYjM3NzdiYWNjN2Y5ODNiNjYxNGZkOWMxNzE1Y2Q0NGNkNDg0YjZkM2EwZDM0YzhcIixcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl19LFwic2VuZGVyMDlcIjpbXCJjNTlkOTg0MGIwYjY2MDkwODM2NTQ2YjdlYjRhNzM2MDYyNTc1MjdlYzhjMmI0ODIzMDBmZDIyOTI2NGIwN2U2XCJdLFwic2VuZGVyMDNcIjpbXCI0M2YyYWRiMWRlMTkyMDAwY2IzNzc3YmFjYzdmOTgzYjY2MTRmZDljMTcxNWNkNDRjZDQ4NGI2ZDNhMGQzNGM4XCJdLFwibXVsdGktMDAtMDFcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCIsXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDhcIjpbXCI2M2IyZWJhNGVkNzBkNDYxMmQzZTdiYzkwZGIyZmJmNGM3NmY3YjA3NDM2M2U4NmQ3M2YwYmM2MTdmOGU4YjgxXCJdLFwic2VuZGVyMDJcIjpbXCIzYTlkZDUzMmQ3M2RhY2UxOTVkYmI2NGQxZGJhNjU3MmZiNzgzZDBmZGQzMjQ2ODVlMzJmYmRhMmY4OWY5OWE2XCJdfSxcImNvZGVcIjpcIihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMFxcXCIpIDEwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMVxcXCIpIDExMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMlxcXCIpIDEyMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwM1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwM1xcXCIpIDEzMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNFxcXCIpIDE0MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNVxcXCIpIDE1MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNlxcXCIpIDE2MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwN1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwN1xcXCIpIDE3MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOFxcXCIpIDE4MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOVxcXCIpIDE5MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMC0wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJtdWx0aS0wMC0wMVxcXCIpIDEwMTAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMi0wMy0wNC1hbnlcXFwiIChyZWFkLWtleXNldCBcXFwibXVsdGktMDItMDMtMDQtYW55XFxcIikgMTIzNDAwMDAwLjApXFxuXFxuKGNvaW4uY29pbmJhc2UgXFxcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcXFwiIChyZWFkLWtleXNldCBcXFwiZTdmN1xcXCIpIDE1MC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWdyYW50c05cIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJmMjFVMUlGeVE3Rl8tNGVOdHpBMW5admNDSDlydjlmdmw1YzVrRHI1cWx3IiwibG9ncyI6IkF3MTVuVFF0YmlQYlVCQm1reGpRV09JZlc3ZHNfUi1sWjhNMGZDMXAxZHciLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJzZW5kZXIwMCIsMTAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMSIsMTEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMiIsMTIwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMyIsMTMwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNCIsMTQwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNSIsMTUwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNiIsMTYwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNyIsMTcwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOCIsMTgwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOSIsMTkwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMC0wMSIsMTAxMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMi0wMy0wNC1hbnkiLDEyMzQwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwiZTdmNzYzNGU5MjU1NDFmMzY4YjgyN2FkNWM3MjQyMTkwNTEwMGY2MjA1Mjg1YTc4YzE5ZDdiNGEzODcxMTgwNSIsMTUwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifV0sIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjh9") ] diff --git a/src/Chainweb/BlockHeader/Genesis/Pact5InstantTimedCPM0Payload.hs b/src/Chainweb/BlockHeader/Genesis/Pact5InstantTimedCPM0Payload.hs index c81aecdb4..4b6e8019c 100644 --- a/src/Chainweb/BlockHeader/Genesis/Pact5InstantTimedCPM0Payload.hs +++ b/src/Chainweb/BlockHeader/Genesis/Pact5InstantTimedCPM0Payload.hs @@ -21,19 +21,19 @@ payloadBlock where actualHash, expectedHash :: BlockPayloadHash actualHash = _payloadWithOutputsPayloadHash payload - expectedHash = unsafeFromText "try68j8ecHmHX6e58nLaRPP6GpU1JVbB_q9Iegl39S4" + expectedHash = unsafeFromText "Aq8kH2TOht5wRP-bDUfaah4QZlOLUxmC7yIIHSocKmo" payload = newPayloadWithOutputs minerData coinbase txs minerData = unsafeFromText "eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119" coinbase = unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6Ik5PX0NPSU5CQVNFIn0sInJlcUtleSI6IkRsZFJ3Q2JsUTdMb3F5NndZSm5hb2RIbDMwZDNqM2VILXF0RnpmRXY0NmciLCJsb2dzIjpudWxsLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjpudWxsfQ" txs = V.fromList - [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggZms4ajZKMUI5WUFaTzBBbEI4QllRRklMZHg1N2Q3bmJXaHdGcHItLXFMbyJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlNRMVFncFNSMERqMEtLSHRHRmtLX2dWbkRGdWpJVkJCWTRQY25RQmdOYnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") - , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIE4tRDhmaUxuSmRsTGt4Q2dMcHdCM25odDd1bk1CYmstQTRVdy0zMUNnLXcifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJDNDJQSVBoeGN5NVRULU5sSXNqTEZnRjRfR2dWYVZRN3EzM1oxR3JUVGpZIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") - , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggY2JQU0FpNS1Yd29SbzBpMlNDQWE5cDRJNVJzcHpTYUJwbThhcTB2M21rYyJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6InVtMmdlUDBhZnpwSVFKS0dydUY0djZqZzhYa25sem5lQXdNa2RNWF9BZEEiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") - , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6IjdLQjJVUGZGX3RJTUp4S1VhTlZ2RUFjdkx1amN0bzNQWnVwY0RCcFF1MzAiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") - , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIDBySDJ5Q1pucmNEOWlNc3EtTm01Nzh4dUR4VUpvTmZKeXBZeUVrdUNnS00ifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiI2OEkyQ2dmZTNzQ3RRTVlqTi1rMnVvZ2JGYnpnbzNOMUhoVHA5ZEZMMEs0IiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") - , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiWXJLZ3BSdjVGU0JYQnhJWVBDMGlUNDNSLUJuZ2dkZTVLU042N280OVpMQSIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") - , (unsafeFromText "eyJoYXNoIjoiWE5BNmxPSjFXLTdYWXY1WWI0QXFsNzRveFlJN09KcWpPUVQ1b1k0OHEtZyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiYWxsb2NhdGlvbi10ZXN0MDFcIjpbXCI3MDExYzM3OTE0MGZmODk5ZjdlNjEzYWMwYTk3ODRhN2MwYTUxNWQzMGZlMGFiMmIwYzA3ZTVhYTE3NjM1ZTNlXCJdLFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcImFsbG9jYXRpb24wMFwiOltcImQ4MmQwZGNkZTk4MjU1MDVkODZhZmI2ZGNjMTA0MTFkNmI2N2E0MjlhNzllMjFiZGE0YmIxMTliZjI4YWI4NzFcIl0sXCJhbGxvY2F0aW9uLXRlc3QwMlwiOltcIjA2NTQ0ZTIyYmZlZjIzMGQ2ZDIyZjk0ODZhYzZjYjc2YmYyNThlYmZiZjAxMzdlZTU4ZjY1NzQzZTFhNWI4YzRcIl0sXCJhbGxvY2F0aW9uMDFcIjpbXCJiNGM4YTNlYTkxZDMxNDZiMDU2MDk5NDc0MGYwZTNlZWQ5MWM1OWQyZWVjYTFkYzk5ZjBjMjg3Mjg0NWMyOTRkXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWtleXNldHNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IlhOQTZsT0oxVy03WFl2NVliNEFxbDc0b3hZSTdPSnFqT1FUNW9ZNDhxLWciLCJsb2dzIjoiWGdmU1Raa1E4Wnl5bXZORXBLbnNONE40b0Z5WUcxNkxKbUNSVXdHZXRfOCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") - , (unsafeFromText "eyJoYXNoIjoiNWtxZ0tzWWtwbjZCcS1KUnhNYnA1VG9jUWhRWGRJVVNiM1NGQm1Ba3VWcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMFxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMTVUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMFxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHRpbWUgXFxcIjIxMDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMVxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMlxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24tdGVzdDAxXFxcIiAodGltZSBcXFwiMTkwMC0xMC0zMVQxODowMDowMFpcXFwiKSBcXFwiYWxsb2NhdGlvbi10ZXN0MDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24tdGVzdDAyXFxcIiAyMDAwMDAwLjApXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJkZXZuZXQtYWxsb2NhdGlvbnNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiI1a3FnS3NZa3BuNkJxLUpSeE1icDVUb2NRaFFYZElVU2IzU0ZCbUFrdVZzIiwibG9ncyI6InhxMzBnWTZiclBHSjFjOHc2YzE1UWxYNWIwQUlXVjJFaXRPSjJEYWFKQnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") - , (unsafeFromText "eyJoYXNoIjoiY2tiMmZnNWVJeXRoS3U5YVN3TkhIWllsWVY2V1R1NGlYaUZDamc5WFFLWSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wic2VuZGVyMDdcIjpbXCI0YzMxZGM5ZWU3ZjI0MTc3Zjc4YjZmNTE4MDEyYTIwODMyNmUyYWYxZjM3YmIwYTI0MDViNTA1NmQwY2FkNjI4XCJdLFwic2VuZGVyMDFcIjpbXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDZcIjpbXCI1ZmZjMWY3ZmVmN2E0NDczODYyNTc2MmY3NWE0MjI5NDU0OTUxZTAzZjJhZmM2ZjgxMzA5YzBjMWJkZjllZTZmXCJdLFwic2VuZGVyMDBcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdLFwiZTdmN1wiOltcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcIl0sXCJzZW5kZXIwNVwiOltcImYwOWQ4ZjYzOTRhZWE0MjVmZTY3ODNkODhjZDgxMzYzZDgwMTdmMTZhZmQzNzExYzU3NWJlMGY1Y2Q1YzliYjlcIl0sXCJzZW5kZXIwNFwiOltcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl0sXCJtdWx0aS0wMi0wMy0wNC1hbnlcIjp7XCJwcmVkXCI6XCJrZXlzLWFueVwiLFwia2V5c1wiOltcIjNhOWRkNTMyZDczZGFjZTE5NWRiYjY0ZDFkYmE2NTcyZmI3ODNkMGZkZDMyNDY4NWUzMmZiZGEyZjg5Zjk5YTZcIixcIjQzZjJhZGIxZGUxOTIwMDBjYjM3NzdiYWNjN2Y5ODNiNjYxNGZkOWMxNzE1Y2Q0NGNkNDg0YjZkM2EwZDM0YzhcIixcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl19LFwic2VuZGVyMDlcIjpbXCJjNTlkOTg0MGIwYjY2MDkwODM2NTQ2YjdlYjRhNzM2MDYyNTc1MjdlYzhjMmI0ODIzMDBmZDIyOTI2NGIwN2U2XCJdLFwic2VuZGVyMDNcIjpbXCI0M2YyYWRiMWRlMTkyMDAwY2IzNzc3YmFjYzdmOTgzYjY2MTRmZDljMTcxNWNkNDRjZDQ4NGI2ZDNhMGQzNGM4XCJdLFwibXVsdGktMDAtMDFcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCIsXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDhcIjpbXCI2M2IyZWJhNGVkNzBkNDYxMmQzZTdiYzkwZGIyZmJmNGM3NmY3YjA3NDM2M2U4NmQ3M2YwYmM2MTdmOGU4YjgxXCJdLFwic2VuZGVyMDJcIjpbXCIzYTlkZDUzMmQ3M2RhY2UxOTVkYmI2NGQxZGJhNjU3MmZiNzgzZDBmZGQzMjQ2ODVlMzJmYmRhMmY4OWY5OWE2XCJdfSxcImNvZGVcIjpcIihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMFxcXCIpIDEwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMVxcXCIpIDExMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMlxcXCIpIDEyMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwM1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwM1xcXCIpIDEzMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNFxcXCIpIDE0MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNVxcXCIpIDE1MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNlxcXCIpIDE2MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwN1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwN1xcXCIpIDE3MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOFxcXCIpIDE4MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOVxcXCIpIDE5MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMC0wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJtdWx0aS0wMC0wMVxcXCIpIDEwMTAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMi0wMy0wNC1hbnlcXFwiIChyZWFkLWtleXNldCBcXFwibXVsdGktMDItMDMtMDQtYW55XFxcIikgMTIzNDAwMDAwLjApXFxuXFxuKGNvaW4uY29pbmJhc2UgXFxcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcXFwiIChyZWFkLWtleXNldCBcXFwiZTdmN1xcXCIpIDE1MC4wKVxcblxcbjsgZW5vdWdoIHRvIGNvdmVyIHRoZSBnYXMgY29zdHMgZm9yIGFsbG9jYXRpb24gcmVsZWFzZVxcbihjb2luLmNvaW5iYXNlIFxcXCJhbGxvY2F0aW9uMDBcXFwiIChrZXlzZXQtcmVmLWd1YXJkIFxcXCJhbGxvY2F0aW9uMDBcXFwiKSAxMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiYWxsb2NhdGlvbjAxXFxcIiAoa2V5c2V0LXJlZi1ndWFyZCBcXFwiYWxsb2NhdGlvbjAxXFxcIikgMTAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImFsbG9jYXRpb24wMlxcXCIgKGtleXNldC1yZWYtZ3VhcmQgXFxcImFsbG9jYXRpb24wMlxcXCIpIDEwMDAwMC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWdyYW50czBcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJja2IyZmc1ZUl5dGhLdTlhU3dOSEhaWWxZVjZXVHU0aVhpRkNqZzlYUUtZIiwibG9ncyI6IkpydDFMM1lpTTJUN2d0Qi05QVVEMzBUeWhiMU0yY1hZMWpoRVVzTGdMSjQiLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJzZW5kZXIwMCIsMTAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMSIsMTEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMiIsMTIwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMyIsMTMwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNCIsMTQwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNSIsMTUwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNiIsMTYwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNyIsMTcwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOCIsMTgwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOSIsMTkwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMC0wMSIsMTAxMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMi0wMy0wNC1hbnkiLDEyMzQwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwiZTdmNzYzNGU5MjU1NDFmMzY4YjgyN2FkNWM3MjQyMTkwNTEwMGY2MjA1Mjg1YTc4YzE5ZDdiNGEzODcxMTgwNSIsMTUwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJhbGxvY2F0aW9uMDAiLDEwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwiYWxsb2NhdGlvbjAxIiwxMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsImFsbG9jYXRpb24wMiIsMTAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifV0sIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjh9") + [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggTm1kUnRzekN3YWNqSEd5eUU5Tl9mbFFNUlJCaGNIVkZQNE9qaGlQZWoxRSJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlB3eDlycG9kS2prSGNPUlh2WFVRSUpjRVZRZDhPSXRNM0FlakNFRExMVXMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") + , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIGg4OWljM2doejIzUmprMHBITkt0Rk93cnZTczdtYm11cWxvVlhPaGwyR0kifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJSUDhnMUJrZnkyQjN1bHE0WWU4amF1VlRZcGpqRXlaLWtydGJ5SVg2STRnIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") + , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggWXhFLUtnQzZKbUttQ2NnS1RKbWxFbl9JNThJNEVYbWhmcnZ6WDdiZXJZayJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6IjFTQmJBNHVzS0E5OFNlX09WRUdkcVk5WjJoSW1jVmcydWpISDJkM1ZmeEkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") + , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6InFsZDBleGFpdDNNRVdYcl9UeFZPcm9BWGNfcGlHSlhSVGJSMTBSb0NsMUkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") + , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIGlJV0FQMW9lbl9rcFhqRmJuUU04N0FKUlpJZ3RzZlpjQXdZckV5MjFSV1EifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiJ3TXdXV3hkSFVuU1VOWXJ1RXlISEtTTzUyeGtkVXU0TXBmbE1FcHYyT05FIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") + , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiaVJ4cktxek5NaU1IbkRPZGFpSG14TmYxWjJKMl9Qb3QzWG50WE5sd0JhZyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") + , (unsafeFromText "eyJoYXNoIjoiWE5BNmxPSjFXLTdYWXY1WWI0QXFsNzRveFlJN09KcWpPUVQ1b1k0OHEtZyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiYWxsb2NhdGlvbi10ZXN0MDFcIjpbXCI3MDExYzM3OTE0MGZmODk5ZjdlNjEzYWMwYTk3ODRhN2MwYTUxNWQzMGZlMGFiMmIwYzA3ZTVhYTE3NjM1ZTNlXCJdLFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcImFsbG9jYXRpb24wMFwiOltcImQ4MmQwZGNkZTk4MjU1MDVkODZhZmI2ZGNjMTA0MTFkNmI2N2E0MjlhNzllMjFiZGE0YmIxMTliZjI4YWI4NzFcIl0sXCJhbGxvY2F0aW9uLXRlc3QwMlwiOltcIjA2NTQ0ZTIyYmZlZjIzMGQ2ZDIyZjk0ODZhYzZjYjc2YmYyNThlYmZiZjAxMzdlZTU4ZjY1NzQzZTFhNWI4YzRcIl0sXCJhbGxvY2F0aW9uMDFcIjpbXCJiNGM4YTNlYTkxZDMxNDZiMDU2MDk5NDc0MGYwZTNlZWQ5MWM1OWQyZWVjYTFkYzk5ZjBjMjg3Mjg0NWMyOTRkXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWtleXNldHNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IlhOQTZsT0oxVy03WFl2NVliNEFxbDc0b3hZSTdPSnFqT1FUNW9ZNDhxLWciLCJsb2dzIjoiYXJRSWpQVGRrcXhoQTNjWl9WaVE3OXM3Uk5XRTlGV2Rha0xWdXl4Nlc0YyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") + , (unsafeFromText "eyJoYXNoIjoiNWtxZ0tzWWtwbjZCcS1KUnhNYnA1VG9jUWhRWGRJVVNiM1NGQm1Ba3VWcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMFxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMTVUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMFxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHRpbWUgXFxcIjIxMDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMVxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMlxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24tdGVzdDAxXFxcIiAodGltZSBcXFwiMTkwMC0xMC0zMVQxODowMDowMFpcXFwiKSBcXFwiYWxsb2NhdGlvbi10ZXN0MDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24tdGVzdDAyXFxcIiAyMDAwMDAwLjApXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJkZXZuZXQtYWxsb2NhdGlvbnNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiI1a3FnS3NZa3BuNkJxLUpSeE1icDVUb2NRaFFYZElVU2IzU0ZCbUFrdVZzIiwibG9ncyI6IkhpX3ZfVEhFT2s2aEJFRU0yWmV2Vzh3eVJsQWpUZzNjVUQydXBlVkx0b1UiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") + , (unsafeFromText "eyJoYXNoIjoiY2tiMmZnNWVJeXRoS3U5YVN3TkhIWllsWVY2V1R1NGlYaUZDamc5WFFLWSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wic2VuZGVyMDdcIjpbXCI0YzMxZGM5ZWU3ZjI0MTc3Zjc4YjZmNTE4MDEyYTIwODMyNmUyYWYxZjM3YmIwYTI0MDViNTA1NmQwY2FkNjI4XCJdLFwic2VuZGVyMDFcIjpbXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDZcIjpbXCI1ZmZjMWY3ZmVmN2E0NDczODYyNTc2MmY3NWE0MjI5NDU0OTUxZTAzZjJhZmM2ZjgxMzA5YzBjMWJkZjllZTZmXCJdLFwic2VuZGVyMDBcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdLFwiZTdmN1wiOltcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcIl0sXCJzZW5kZXIwNVwiOltcImYwOWQ4ZjYzOTRhZWE0MjVmZTY3ODNkODhjZDgxMzYzZDgwMTdmMTZhZmQzNzExYzU3NWJlMGY1Y2Q1YzliYjlcIl0sXCJzZW5kZXIwNFwiOltcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl0sXCJtdWx0aS0wMi0wMy0wNC1hbnlcIjp7XCJwcmVkXCI6XCJrZXlzLWFueVwiLFwia2V5c1wiOltcIjNhOWRkNTMyZDczZGFjZTE5NWRiYjY0ZDFkYmE2NTcyZmI3ODNkMGZkZDMyNDY4NWUzMmZiZGEyZjg5Zjk5YTZcIixcIjQzZjJhZGIxZGUxOTIwMDBjYjM3NzdiYWNjN2Y5ODNiNjYxNGZkOWMxNzE1Y2Q0NGNkNDg0YjZkM2EwZDM0YzhcIixcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl19LFwic2VuZGVyMDlcIjpbXCJjNTlkOTg0MGIwYjY2MDkwODM2NTQ2YjdlYjRhNzM2MDYyNTc1MjdlYzhjMmI0ODIzMDBmZDIyOTI2NGIwN2U2XCJdLFwic2VuZGVyMDNcIjpbXCI0M2YyYWRiMWRlMTkyMDAwY2IzNzc3YmFjYzdmOTgzYjY2MTRmZDljMTcxNWNkNDRjZDQ4NGI2ZDNhMGQzNGM4XCJdLFwibXVsdGktMDAtMDFcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCIsXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDhcIjpbXCI2M2IyZWJhNGVkNzBkNDYxMmQzZTdiYzkwZGIyZmJmNGM3NmY3YjA3NDM2M2U4NmQ3M2YwYmM2MTdmOGU4YjgxXCJdLFwic2VuZGVyMDJcIjpbXCIzYTlkZDUzMmQ3M2RhY2UxOTVkYmI2NGQxZGJhNjU3MmZiNzgzZDBmZGQzMjQ2ODVlMzJmYmRhMmY4OWY5OWE2XCJdfSxcImNvZGVcIjpcIihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMFxcXCIpIDEwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMVxcXCIpIDExMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMlxcXCIpIDEyMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwM1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwM1xcXCIpIDEzMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNFxcXCIpIDE0MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNVxcXCIpIDE1MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNlxcXCIpIDE2MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwN1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwN1xcXCIpIDE3MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOFxcXCIpIDE4MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOVxcXCIpIDE5MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMC0wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJtdWx0aS0wMC0wMVxcXCIpIDEwMTAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMi0wMy0wNC1hbnlcXFwiIChyZWFkLWtleXNldCBcXFwibXVsdGktMDItMDMtMDQtYW55XFxcIikgMTIzNDAwMDAwLjApXFxuXFxuKGNvaW4uY29pbmJhc2UgXFxcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcXFwiIChyZWFkLWtleXNldCBcXFwiZTdmN1xcXCIpIDE1MC4wKVxcblxcbjsgZW5vdWdoIHRvIGNvdmVyIHRoZSBnYXMgY29zdHMgZm9yIGFsbG9jYXRpb24gcmVsZWFzZVxcbihjb2luLmNvaW5iYXNlIFxcXCJhbGxvY2F0aW9uMDBcXFwiIChrZXlzZXQtcmVmLWd1YXJkIFxcXCJhbGxvY2F0aW9uMDBcXFwiKSAxMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiYWxsb2NhdGlvbjAxXFxcIiAoa2V5c2V0LXJlZi1ndWFyZCBcXFwiYWxsb2NhdGlvbjAxXFxcIikgMTAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImFsbG9jYXRpb24wMlxcXCIgKGtleXNldC1yZWYtZ3VhcmQgXFxcImFsbG9jYXRpb24wMlxcXCIpIDEwMDAwMC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWdyYW50czBcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJja2IyZmc1ZUl5dGhLdTlhU3dOSEhaWWxZVjZXVHU0aVhpRkNqZzlYUUtZIiwibG9ncyI6ImFCUXM2aDJGVUN1a00tM0pjQmdLZGFvRU1Ta3p2OTJkM0VmT2t5MXNrMmciLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJzZW5kZXIwMCIsMTAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMSIsMTEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMiIsMTIwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMyIsMTMwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNCIsMTQwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNSIsMTUwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNiIsMTYwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNyIsMTcwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOCIsMTgwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOSIsMTkwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMC0wMSIsMTAxMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMi0wMy0wNC1hbnkiLDEyMzQwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwiZTdmNzYzNGU5MjU1NDFmMzY4YjgyN2FkNWM3MjQyMTkwNTEwMGY2MjA1Mjg1YTc4YzE5ZDdiNGEzODcxMTgwNSIsMTUwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJhbGxvY2F0aW9uMDAiLDEwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwiYWxsb2NhdGlvbjAxIiwxMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsImFsbG9jYXRpb24wMiIsMTAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifV0sIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjh9") ] diff --git a/src/Chainweb/BlockHeader/Genesis/Pact5InstantTimedCPM1to9Payload.hs b/src/Chainweb/BlockHeader/Genesis/Pact5InstantTimedCPM1to9Payload.hs index e58bbf919..917d74073 100644 --- a/src/Chainweb/BlockHeader/Genesis/Pact5InstantTimedCPM1to9Payload.hs +++ b/src/Chainweb/BlockHeader/Genesis/Pact5InstantTimedCPM1to9Payload.hs @@ -21,19 +21,19 @@ payloadBlock where actualHash, expectedHash :: BlockPayloadHash actualHash = _payloadWithOutputsPayloadHash payload - expectedHash = unsafeFromText "qtEDWh5yoRYfpkUntSVQaFWOeOPjiRj2JvtzY1EG7Us" + expectedHash = unsafeFromText "l8sBeuPmL-evlLf-oApMqOyxX8MH6PQxQpg03Sp_Uj8" payload = newPayloadWithOutputs minerData coinbase txs minerData = unsafeFromText "eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119" coinbase = unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6Ik5PX0NPSU5CQVNFIn0sInJlcUtleSI6IkRsZFJ3Q2JsUTdMb3F5NndZSm5hb2RIbDMwZDNqM2VILXF0RnpmRXY0NmciLCJsb2dzIjpudWxsLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjpudWxsfQ" txs = V.fromList - [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggZms4ajZKMUI5WUFaTzBBbEI4QllRRklMZHg1N2Q3bmJXaHdGcHItLXFMbyJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlNRMVFncFNSMERqMEtLSHRHRmtLX2dWbkRGdWpJVkJCWTRQY25RQmdOYnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") - , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIE4tRDhmaUxuSmRsTGt4Q2dMcHdCM25odDd1bk1CYmstQTRVdy0zMUNnLXcifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJDNDJQSVBoeGN5NVRULU5sSXNqTEZnRjRfR2dWYVZRN3EzM1oxR3JUVGpZIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") - , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggY2JQU0FpNS1Yd29SbzBpMlNDQWE5cDRJNVJzcHpTYUJwbThhcTB2M21rYyJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6InVtMmdlUDBhZnpwSVFKS0dydUY0djZqZzhYa25sem5lQXdNa2RNWF9BZEEiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") - , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6IjdLQjJVUGZGX3RJTUp4S1VhTlZ2RUFjdkx1amN0bzNQWnVwY0RCcFF1MzAiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") - , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIDBySDJ5Q1pucmNEOWlNc3EtTm01Nzh4dUR4VUpvTmZKeXBZeUVrdUNnS00ifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiI2OEkyQ2dmZTNzQ3RRTVlqTi1rMnVvZ2JGYnpnbzNOMUhoVHA5ZEZMMEs0IiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") - , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiWXJLZ3BSdjVGU0JYQnhJWVBDMGlUNDNSLUJuZ2dkZTVLU042N280OVpMQSIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") - , (unsafeFromText "eyJoYXNoIjoiWE5BNmxPSjFXLTdYWXY1WWI0QXFsNzRveFlJN09KcWpPUVQ1b1k0OHEtZyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiYWxsb2NhdGlvbi10ZXN0MDFcIjpbXCI3MDExYzM3OTE0MGZmODk5ZjdlNjEzYWMwYTk3ODRhN2MwYTUxNWQzMGZlMGFiMmIwYzA3ZTVhYTE3NjM1ZTNlXCJdLFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcImFsbG9jYXRpb24wMFwiOltcImQ4MmQwZGNkZTk4MjU1MDVkODZhZmI2ZGNjMTA0MTFkNmI2N2E0MjlhNzllMjFiZGE0YmIxMTliZjI4YWI4NzFcIl0sXCJhbGxvY2F0aW9uLXRlc3QwMlwiOltcIjA2NTQ0ZTIyYmZlZjIzMGQ2ZDIyZjk0ODZhYzZjYjc2YmYyNThlYmZiZjAxMzdlZTU4ZjY1NzQzZTFhNWI4YzRcIl0sXCJhbGxvY2F0aW9uMDFcIjpbXCJiNGM4YTNlYTkxZDMxNDZiMDU2MDk5NDc0MGYwZTNlZWQ5MWM1OWQyZWVjYTFkYzk5ZjBjMjg3Mjg0NWMyOTRkXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWtleXNldHNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IlhOQTZsT0oxVy03WFl2NVliNEFxbDc0b3hZSTdPSnFqT1FUNW9ZNDhxLWciLCJsb2dzIjoiWGdmU1Raa1E4Wnl5bXZORXBLbnNONE40b0Z5WUcxNkxKbUNSVXdHZXRfOCIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") - , (unsafeFromText "eyJoYXNoIjoiNWtxZ0tzWWtwbjZCcS1KUnhNYnA1VG9jUWhRWGRJVVNiM1NGQm1Ba3VWcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMFxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMTVUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMFxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHRpbWUgXFxcIjIxMDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMVxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMlxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24tdGVzdDAxXFxcIiAodGltZSBcXFwiMTkwMC0xMC0zMVQxODowMDowMFpcXFwiKSBcXFwiYWxsb2NhdGlvbi10ZXN0MDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24tdGVzdDAyXFxcIiAyMDAwMDAwLjApXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJkZXZuZXQtYWxsb2NhdGlvbnNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiI1a3FnS3NZa3BuNkJxLUpSeE1icDVUb2NRaFFYZElVU2IzU0ZCbUFrdVZzIiwibG9ncyI6InhxMzBnWTZiclBHSjFjOHc2YzE1UWxYNWIwQUlXVjJFaXRPSjJEYWFKQnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") - , (unsafeFromText "eyJoYXNoIjoiZjIxVTFJRnlRN0ZfLTRlTnR6QTFuWnZjQ0g5cnY5ZnZsNWM1a0RyNXFsdyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wic2VuZGVyMDdcIjpbXCI0YzMxZGM5ZWU3ZjI0MTc3Zjc4YjZmNTE4MDEyYTIwODMyNmUyYWYxZjM3YmIwYTI0MDViNTA1NmQwY2FkNjI4XCJdLFwic2VuZGVyMDFcIjpbXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDZcIjpbXCI1ZmZjMWY3ZmVmN2E0NDczODYyNTc2MmY3NWE0MjI5NDU0OTUxZTAzZjJhZmM2ZjgxMzA5YzBjMWJkZjllZTZmXCJdLFwic2VuZGVyMDBcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdLFwiZTdmN1wiOltcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcIl0sXCJzZW5kZXIwNVwiOltcImYwOWQ4ZjYzOTRhZWE0MjVmZTY3ODNkODhjZDgxMzYzZDgwMTdmMTZhZmQzNzExYzU3NWJlMGY1Y2Q1YzliYjlcIl0sXCJzZW5kZXIwNFwiOltcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl0sXCJtdWx0aS0wMi0wMy0wNC1hbnlcIjp7XCJwcmVkXCI6XCJrZXlzLWFueVwiLFwia2V5c1wiOltcIjNhOWRkNTMyZDczZGFjZTE5NWRiYjY0ZDFkYmE2NTcyZmI3ODNkMGZkZDMyNDY4NWUzMmZiZGEyZjg5Zjk5YTZcIixcIjQzZjJhZGIxZGUxOTIwMDBjYjM3NzdiYWNjN2Y5ODNiNjYxNGZkOWMxNzE1Y2Q0NGNkNDg0YjZkM2EwZDM0YzhcIixcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl19LFwic2VuZGVyMDlcIjpbXCJjNTlkOTg0MGIwYjY2MDkwODM2NTQ2YjdlYjRhNzM2MDYyNTc1MjdlYzhjMmI0ODIzMDBmZDIyOTI2NGIwN2U2XCJdLFwic2VuZGVyMDNcIjpbXCI0M2YyYWRiMWRlMTkyMDAwY2IzNzc3YmFjYzdmOTgzYjY2MTRmZDljMTcxNWNkNDRjZDQ4NGI2ZDNhMGQzNGM4XCJdLFwibXVsdGktMDAtMDFcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCIsXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDhcIjpbXCI2M2IyZWJhNGVkNzBkNDYxMmQzZTdiYzkwZGIyZmJmNGM3NmY3YjA3NDM2M2U4NmQ3M2YwYmM2MTdmOGU4YjgxXCJdLFwic2VuZGVyMDJcIjpbXCIzYTlkZDUzMmQ3M2RhY2UxOTVkYmI2NGQxZGJhNjU3MmZiNzgzZDBmZGQzMjQ2ODVlMzJmYmRhMmY4OWY5OWE2XCJdfSxcImNvZGVcIjpcIihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMFxcXCIpIDEwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMVxcXCIpIDExMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMlxcXCIpIDEyMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwM1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwM1xcXCIpIDEzMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNFxcXCIpIDE0MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNVxcXCIpIDE1MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNlxcXCIpIDE2MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwN1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwN1xcXCIpIDE3MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOFxcXCIpIDE4MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOVxcXCIpIDE5MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMC0wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJtdWx0aS0wMC0wMVxcXCIpIDEwMTAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMi0wMy0wNC1hbnlcXFwiIChyZWFkLWtleXNldCBcXFwibXVsdGktMDItMDMtMDQtYW55XFxcIikgMTIzNDAwMDAwLjApXFxuXFxuKGNvaW4uY29pbmJhc2UgXFxcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcXFwiIChyZWFkLWtleXNldCBcXFwiZTdmN1xcXCIpIDE1MC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWdyYW50c05cIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJmMjFVMUlGeVE3Rl8tNGVOdHpBMW5admNDSDlydjlmdmw1YzVrRHI1cWx3IiwibG9ncyI6IklFeEZDOVg1bDJ6N3JucnlYTG02RzZXc2QzOTlvcXBaekZubkdiQWowYU0iLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJzZW5kZXIwMCIsMTAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMSIsMTEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMiIsMTIwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMyIsMTMwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNCIsMTQwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNSIsMTUwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNiIsMTYwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNyIsMTcwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOCIsMTgwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOSIsMTkwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMC0wMSIsMTAxMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMi0wMy0wNC1hbnkiLDEyMzQwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwiZTdmNzYzNGU5MjU1NDFmMzY4YjgyN2FkNWM3MjQyMTkwNTEwMGY2MjA1Mjg1YTc4YzE5ZDdiNGEzODcxMTgwNSIsMTUwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifV0sIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjh9") + [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggTm1kUnRzekN3YWNqSEd5eUU5Tl9mbFFNUlJCaGNIVkZQNE9qaGlQZWoxRSJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlB3eDlycG9kS2prSGNPUlh2WFVRSUpjRVZRZDhPSXRNM0FlakNFRExMVXMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") + , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIGg4OWljM2doejIzUmprMHBITkt0Rk93cnZTczdtYm11cWxvVlhPaGwyR0kifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJSUDhnMUJrZnkyQjN1bHE0WWU4amF1VlRZcGpqRXlaLWtydGJ5SVg2STRnIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") + , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggWXhFLUtnQzZKbUttQ2NnS1RKbWxFbl9JNThJNEVYbWhmcnZ6WDdiZXJZayJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6IjFTQmJBNHVzS0E5OFNlX09WRUdkcVk5WjJoSW1jVmcydWpISDJkM1ZmeEkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") + , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6InFsZDBleGFpdDNNRVdYcl9UeFZPcm9BWGNfcGlHSlhSVGJSMTBSb0NsMUkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") + , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIGlJV0FQMW9lbl9rcFhqRmJuUU04N0FKUlpJZ3RzZlpjQXdZckV5MjFSV1EifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiJ3TXdXV3hkSFVuU1VOWXJ1RXlISEtTTzUyeGtkVXU0TXBmbE1FcHYyT05FIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") + , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiaVJ4cktxek5NaU1IbkRPZGFpSG14TmYxWjJKMl9Qb3QzWG50WE5sd0JhZyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") + , (unsafeFromText "eyJoYXNoIjoiWE5BNmxPSjFXLTdYWXY1WWI0QXFsNzRveFlJN09KcWpPUVQ1b1k0OHEtZyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiYWxsb2NhdGlvbi10ZXN0MDFcIjpbXCI3MDExYzM3OTE0MGZmODk5ZjdlNjEzYWMwYTk3ODRhN2MwYTUxNWQzMGZlMGFiMmIwYzA3ZTVhYTE3NjM1ZTNlXCJdLFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcImFsbG9jYXRpb24wMFwiOltcImQ4MmQwZGNkZTk4MjU1MDVkODZhZmI2ZGNjMTA0MTFkNmI2N2E0MjlhNzllMjFiZGE0YmIxMTliZjI4YWI4NzFcIl0sXCJhbGxvY2F0aW9uLXRlc3QwMlwiOltcIjA2NTQ0ZTIyYmZlZjIzMGQ2ZDIyZjk0ODZhYzZjYjc2YmYyNThlYmZiZjAxMzdlZTU4ZjY1NzQzZTFhNWI4YzRcIl0sXCJhbGxvY2F0aW9uMDFcIjpbXCJiNGM4YTNlYTkxZDMxNDZiMDU2MDk5NDc0MGYwZTNlZWQ5MWM1OWQyZWVjYTFkYzk5ZjBjMjg3Mjg0NWMyOTRkXCJdfSxcImNvZGVcIjpcIihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWtleXNldHNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IlhOQTZsT0oxVy03WFl2NVliNEFxbDc0b3hZSTdPSnFqT1FUNW9ZNDhxLWciLCJsb2dzIjoiYXJRSWpQVGRrcXhoQTNjWl9WaVE3OXM3Uk5XRTlGV2Rha0xWdXl4Nlc0YyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") + , (unsafeFromText "eyJoYXNoIjoiNWtxZ0tzWWtwbjZCcS1KUnhNYnA1VG9jUWhRWGRJVVNiM1NGQm1Ba3VWcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMFxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMTVUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMFxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHRpbWUgXFxcIjIxMDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMVxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24wMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24wMlxcXCIgMTAwMDAwMC4wKVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcImFsbG9jYXRpb24tdGVzdDAxXFxcIiAodGltZSBcXFwiMTkwMC0xMC0zMVQxODowMDowMFpcXFwiKSBcXFwiYWxsb2NhdGlvbi10ZXN0MDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uLXRlc3QwMlxcXCIgKHRpbWUgXFxcIjE5MDAtMTAtMzFUMTg6MDA6MDBaXFxcIikgXFxcImFsbG9jYXRpb24tdGVzdDAyXFxcIiAyMDAwMDAwLjApXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJkZXZuZXQtYWxsb2NhdGlvbnNcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiI1a3FnS3NZa3BuNkJxLUpSeE1icDVUb2NRaFFYZElVU2IzU0ZCbUFrdVZzIiwibG9ncyI6IkhpX3ZfVEhFT2s2aEJFRU0yWmV2Vzh3eVJsQWpUZzNjVUQydXBlVkx0b1UiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") + , (unsafeFromText "eyJoYXNoIjoiZjIxVTFJRnlRN0ZfLTRlTnR6QTFuWnZjQ0g5cnY5ZnZsNWM1a0RyNXFsdyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wic2VuZGVyMDdcIjpbXCI0YzMxZGM5ZWU3ZjI0MTc3Zjc4YjZmNTE4MDEyYTIwODMyNmUyYWYxZjM3YmIwYTI0MDViNTA1NmQwY2FkNjI4XCJdLFwic2VuZGVyMDFcIjpbXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDZcIjpbXCI1ZmZjMWY3ZmVmN2E0NDczODYyNTc2MmY3NWE0MjI5NDU0OTUxZTAzZjJhZmM2ZjgxMzA5YzBjMWJkZjllZTZmXCJdLFwic2VuZGVyMDBcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCJdLFwiZTdmN1wiOltcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcIl0sXCJzZW5kZXIwNVwiOltcImYwOWQ4ZjYzOTRhZWE0MjVmZTY3ODNkODhjZDgxMzYzZDgwMTdmMTZhZmQzNzExYzU3NWJlMGY1Y2Q1YzliYjlcIl0sXCJzZW5kZXIwNFwiOltcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl0sXCJtdWx0aS0wMi0wMy0wNC1hbnlcIjp7XCJwcmVkXCI6XCJrZXlzLWFueVwiLFwia2V5c1wiOltcIjNhOWRkNTMyZDczZGFjZTE5NWRiYjY0ZDFkYmE2NTcyZmI3ODNkMGZkZDMyNDY4NWUzMmZiZGEyZjg5Zjk5YTZcIixcIjQzZjJhZGIxZGUxOTIwMDBjYjM3NzdiYWNjN2Y5ODNiNjYxNGZkOWMxNzE1Y2Q0NGNkNDg0YjZkM2EwZDM0YzhcIixcIjJkNzBhYTRmNjk3YzNhM2I4ZGQ2ZDk3NzQ1YWMwNzRlZGNmZDBlYjY1YzM3Nzc0Y2RlMjUxMzU0ODNiZWE3MWVcIl19LFwic2VuZGVyMDlcIjpbXCJjNTlkOTg0MGIwYjY2MDkwODM2NTQ2YjdlYjRhNzM2MDYyNTc1MjdlYzhjMmI0ODIzMDBmZDIyOTI2NGIwN2U2XCJdLFwic2VuZGVyMDNcIjpbXCI0M2YyYWRiMWRlMTkyMDAwY2IzNzc3YmFjYzdmOTgzYjY2MTRmZDljMTcxNWNkNDRjZDQ4NGI2ZDNhMGQzNGM4XCJdLFwibXVsdGktMDAtMDFcIjpbXCIzNjg4MjBmODBjMzI0YmJjN2MyYjA2MTA2ODhhN2RhNDNlMzlmOTFkMTE4NzMyNjcxY2Q5Yzc1MDBmZjQzY2NhXCIsXCI2YmUyZjQ4NWE3YWY3NWZlZGI0YjdmMTUzYTkwM2Y3ZTYwMDBjYTRhYTUwMTE3OWM5MWEyNDUwYjc3N2JkMmE3XCJdLFwic2VuZGVyMDhcIjpbXCI2M2IyZWJhNGVkNzBkNDYxMmQzZTdiYzkwZGIyZmJmNGM3NmY3YjA3NDM2M2U4NmQ3M2YwYmM2MTdmOGU4YjgxXCJdLFwic2VuZGVyMDJcIjpbXCIzYTlkZDUzMmQ3M2RhY2UxOTVkYmI2NGQxZGJhNjU3MmZiNzgzZDBmZGQzMjQ2ODVlMzJmYmRhMmY4OWY5OWE2XCJdfSxcImNvZGVcIjpcIihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMFxcXCIpIDEwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMVxcXCIpIDExMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwMlxcXCIpIDEyMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwM1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwM1xcXCIpIDEzMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNFxcXCIpIDE0MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNVxcXCIpIDE1MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwNlxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwNlxcXCIpIDE2MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwN1xcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwN1xcXCIpIDE3MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOFxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOFxcXCIpIDE4MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJzZW5kZXIwOVxcXCIgKHJlYWQta2V5c2V0IFxcXCJzZW5kZXIwOVxcXCIpIDE5MDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMC0wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJtdWx0aS0wMC0wMVxcXCIpIDEwMTAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJtdWx0aS0wMi0wMy0wNC1hbnlcXFwiIChyZWFkLWtleXNldCBcXFwibXVsdGktMDItMDMtMDQtYW55XFxcIikgMTIzNDAwMDAwLjApXFxuXFxuKGNvaW4uY29pbmJhc2UgXFxcImU3Zjc2MzRlOTI1NTQxZjM2OGI4MjdhZDVjNzI0MjE5MDUxMDBmNjIwNTI4NWE3OGMxOWQ3YjRhMzg3MTE4MDVcXFwiIChyZWFkLWtleXNldCBcXFwiZTdmN1xcXCIpIDE1MC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZGV2bmV0LWdyYW50c05cIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJmMjFVMUlGeVE3Rl8tNGVOdHpBMW5admNDSDlydjlmdmw1YzVrRHI1cWx3IiwibG9ncyI6IkF3MTVuVFF0YmlQYlVCQm1reGpRV09JZlc3ZHNfUi1sWjhNMGZDMXAxZHciLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJzZW5kZXIwMCIsMTAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMSIsMTEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMiIsMTIwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwMyIsMTMwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNCIsMTQwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNSIsMTUwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNiIsMTYwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwNyIsMTcwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOCIsMTgwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJzZW5kZXIwOSIsMTkwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMC0wMSIsMTAxMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJtdWx0aS0wMi0wMy0wNC1hbnkiLDEyMzQwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwiZTdmNzYzNGU5MjU1NDFmMzY4YjgyN2FkNWM3MjQyMTkwNTEwMGY2MjA1Mjg1YTc4YzE5ZDdiNGEzODcxMTgwNSIsMTUwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifV0sIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjh9") ] diff --git a/src/Chainweb/BlockHeader/Genesis/Testnet050Payload.hs b/src/Chainweb/BlockHeader/Genesis/Testnet050Payload.hs index 4e181eb8d..85c094d6e 100644 --- a/src/Chainweb/BlockHeader/Genesis/Testnet050Payload.hs +++ b/src/Chainweb/BlockHeader/Genesis/Testnet050Payload.hs @@ -21,19 +21,19 @@ payloadBlock where actualHash, expectedHash :: BlockPayloadHash actualHash = _payloadWithOutputsPayloadHash payload - expectedHash = unsafeFromText "f74hd6i9uhm-cqM6QgsKwTPOuN9_FXLBSV-h4DnTWCc" + expectedHash = unsafeFromText "QBKI-o4c-8x-tCAp8ATjbGIlL1PDsaW_CkcGv9KKw7E" payload = newPayloadWithOutputs minerData coinbase txs minerData = unsafeFromText "eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119" coinbase = unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6Ik5PX0NPSU5CQVNFIn0sInJlcUtleSI6IkRsZFJ3Q2JsUTdMb3F5NndZSm5hb2RIbDMwZDNqM2VILXF0RnpmRXY0NmciLCJsb2dzIjpudWxsLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjpudWxsfQ" txs = V.fromList - [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggZms4ajZKMUI5WUFaTzBBbEI4QllRRklMZHg1N2Q3bmJXaHdGcHItLXFMbyJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlNRMVFncFNSMERqMEtLSHRHRmtLX2dWbkRGdWpJVkJCWTRQY25RQmdOYnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") - , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIE4tRDhmaUxuSmRsTGt4Q2dMcHdCM25odDd1bk1CYmstQTRVdy0zMUNnLXcifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJDNDJQSVBoeGN5NVRULU5sSXNqTEZnRjRfR2dWYVZRN3EzM1oxR3JUVGpZIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") - , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggY2JQU0FpNS1Yd29SbzBpMlNDQWE5cDRJNVJzcHpTYUJwbThhcTB2M21rYyJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6InVtMmdlUDBhZnpwSVFKS0dydUY0djZqZzhYa25sem5lQXdNa2RNWF9BZEEiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") - , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6IjdLQjJVUGZGX3RJTUp4S1VhTlZ2RUFjdkx1amN0bzNQWnVwY0RCcFF1MzAiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") - , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIDBySDJ5Q1pucmNEOWlNc3EtTm01Nzh4dUR4VUpvTmZKeXBZeUVrdUNnS00ifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiI2OEkyQ2dmZTNzQ3RRTVlqTi1rMnVvZ2JGYnpnbzNOMUhoVHA5ZEZMMEs0IiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") - , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiWXJLZ3BSdjVGU0JYQnhJWVBDMGlUNDNSLUJuZ2dkZTVLU042N280OVpMQSIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") - , (unsafeFromText "eyJoYXNoIjoiRlAyekNwNnRLaXlub011REJKNTVWc1Z6dHlyRGpKMVNhck5ycElIZWtQTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiU0IgPDQzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDI1PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiUFNfQzNcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIkZUU19DMVwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjI5ZjcxMDdiMzlmNmMxOTQ3Zjk2NjIyZjY4OWJlYzY4ZTAxNTczMDc2ZDYwNjExZDNlZjZiOGNiYzQzY2ZhMGJcIixcIjdjMjFmN2I1M2M4MTY3OTgxNTI0ODcwMjRkNzFiZmNiZDQ3YjViODBhZTQzNTk0Yjk0ZGQzODQ1NDgxOGFlZmNcIixcIjFmZjk2OTk0NWFiNjA4OGNiZDNmM2E2YTZiOTcxODc2OTcxOTI3NjNkNzhmMjdmNTViZGRkYmJjMTU3YzAwYzBcIl19LFwiS2FkZW5hXCI6e1wicHJlZFwiOlwia2V5cy1hbGxcIixcImtleXNcIjpbXCIzNWZmMTI5OGM1NmZmYjYwMjI1YmVlZDMyYTYxYWRhNDFhNTdlMjM5ODI2ZWVhOThlZDI5ZTQ4ZmY4YmFjNDNmXCJdfSxcIkVtaWx5XCI6e1wicHJlZFwiOlwia2V5cy1hbGxcIixcImtleXNcIjpbXCIzNWZmMTI5OGM1NmZmYjYwMjI1YmVlZDMyYTYxYWRhNDFhNTdlMjM5ODI2ZWVhOThlZDI5ZTQ4ZmY4YmFjNDNmXCJdfSxcIlNBIDw0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDI2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiUFNfQzhcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDw0MD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDw3PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiQ1MxX0MyXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiOTY1MjlkYmI4MzkwMjc1NDg5MTJiYzZhMWNmZmI2OWM2NzdlZDk3NjYzNTAwMThjYzhjNDZhM2Y4MTlmZTE3NFwiLFwiZTUzNzA4NTY0ZjFhNzhmNmU1YTkzMDlmZDhiOWRkODU2NDY4MzJlMzc0MTYyY2QzYzY3NDIwZTIwMmE3ZTQ1YlwiLFwiNGJiNmI3MWUyZGRjNjEzOTIyNzRkMThkMTQyY2RjOGQ0ZjUwZTU0MzQzMDk4MTM4ZjlhN2QxN2ZiNTYyZDZlYVwiXX0sXCJTQSA8Mj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIkNvaW5saXN0IEdsb2JhbFwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjVhYzAyZDZjZTgwNDcxMmVjNTgyMmFiOTgxM2ZkNDgzMjY1YzEwNmRhM2ZmZjYwY2Q0OTI1ODRiYzI4OTY1ODFcIixcIjExMzYyNTI1MTY0NzU1Mzk4Mjk5YmRmMWQzZGUxZTRjNzVmYWNhOWQ3YzVkZjA0NTM5NTk5OTI4ZjRjOGQ5ZjdcIixcIjgyMTg1ODc1MmY3ZDhlOTg2YWI2YjA4Y2QwNDgxZmY0MDY4ZTMwOGNhMWQyZmY2OGFmMTI0MWVmNTc1Y2UyNTVcIl19LFwiU0IgPDk-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJFQl9DOVwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcIlNBIDwyMD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlBTX0M1XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8MTg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8NDU-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MjM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzU-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTc-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTQ-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8Nj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0MyXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8Mjk-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQSA8OD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNCIDwzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDMzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDEyPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiUFNfQzRcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDwxMT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDw0MT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwyNz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0MxXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJDUzJfQzBcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI5YTJhMTJiYTc5MTkwOWEyYjVlOTJhYjMzNjZmNjBmNDY4OWU1MzMxZWYyODViNzA0ZWZhM2ZkODNiYzk1OWY0XCIsXCI3YmNmNzhmMDllNjRlMzdmZTQ3MDVkNWFiYjM3MzU0OTZmMzFmMDRkMzQ3YzEzOGY1ZGQzZjRlZTI2ODNhOTUyXCIsXCJmNTRlOWYyZDgxYmU0MjJhMDJhZGIwYTE3MmY4OTc1MmZjM2U1ZjlkYWU0MzUyMDg3NzZiZDVkODNhMmY2ZjI0XCJdfSxcIlNBIDw2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0EgPDE4PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDM5PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDQ2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDIwPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8Nz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIk1BSU5ORVRcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJhNDk0NzM3OWM3ZGJiNzZlZTYwYmRlZGQ2NDg0N2ExNWFhNTY1N2VmNDA2MjAxZTQ2ODYxNDc1YzkxZDNjNTFmXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI0OTI2Zjk2M2VlNWEwYzZkZjY3YTFkY2UyNDJmYmMxMWE5MDBjNDMzMmM3N2JkZGZiMGRjNWI2NmY2OTdmZWQwXCJdfSxcIlNBIDwxNT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNCIDwzND5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwxNj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwzNz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwxNT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDw0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDE2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiUFNfQzBcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNUX0MxXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiY2NmNmZhMWZkMzJlNThiMDQwNWYxNjlmZmI0NTVhMWEwNDM0Y2ZhZmY1Yjg1NDk4NjI4MjFmZjZiNTUxZDViM1wiLFwiYWY4MThhNWU4NjcyYWI5M2IwODU5ODdiOTQyZTg3YWE1MmZmNmM4MWJmZmFmYWYzNDM3YzAxYzhhNDFhNmZhOFwiLFwiODc0NjgzMWM1NTgwOTUwZTc0YWVmODY2NTljNmY4ZjFhY2I3MjE1MDY3ZWQ5MWQxMWZlNjkxOTQ1ZjljOGIxZVwiXX0sXCJTQSA8MTM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8MzI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwyND5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDw1PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiQ29pbmxpc3QgTm9uLVVTXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8NDI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MjE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJhbGxvY2F0aW9uMDBcIjpbXCJkODJkMGRjZGU5ODI1NTA1ZDg2YWZiNmRjYzEwNDExZDZiNjdhNDI5YTc5ZTIxYmRhNGJiMTE5YmYyOGFiODcxXCJdLFwiUFNfQzdcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDwzOD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDwxOT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNBIDwzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDE5PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDQ0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDIyPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTQ-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzY-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTc-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8NT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0M5XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQSA8MTA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQSA8OT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlBTX0M2XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8MzE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8Mjg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8Mj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcImFsbG9jYXRpb24wMVwiOltcImI0YzhhM2VhOTFkMzE0NmIwNTYwOTk0NzQwZjBlM2VlZDkxYzU5ZDJlZWNhMWRjOTlmMGMyODcyODQ1YzI5NGRcIl19LFwiY29kZVwiOlwiKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwyPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8Mz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDw0PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8ND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDw1PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8Nj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDw3PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8Nz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDg-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDw4PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8OT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDk-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxMD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDEwPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxMT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDEyPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxMz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDEzPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDE1PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxNj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDE2PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxNz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDE4PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxOT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDE5PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MjA-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwyMD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Nj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw3PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8OD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw5PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8OT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDEwPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTA-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxMT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDExPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxMj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDEzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxND5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDE0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxNT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxNz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDE3PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTg-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxOD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE5PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTk-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyMD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDIwPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MjE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyMT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDIyPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MjI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyMz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDIzPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MjQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDI1PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MjU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyNj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI2PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mjc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyNz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDI4PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mjg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyOT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI5PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzA-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzMD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDMxPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MzE-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzMj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDMyPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzM-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzMz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDM0PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MzQ-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzNT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDM1PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzY-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzNj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDM3PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mzc-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzOD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDM4PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mzk-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzOT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQwPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDA-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw0MT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDQxPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NDI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0Mj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw0ND5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDQ0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NDU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0NT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQ2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MwXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MxXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MxXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MyXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MyXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MzXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MzXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M0XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M0XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M1XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M1XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M2XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M2XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M3XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M3XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M4XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M4XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M5XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M5XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkVCX0M5XFxcIiAocmVhZC1rZXlzZXQgXFxcIkVCX0M5XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkNvaW5saXN0IE5vbi1VU1xcXCIgKHJlYWQta2V5c2V0IFxcXCJDb2lubGlzdCBOb24tVVNcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiQ29pbmxpc3QgR2xvYmFsXFxcIiAocmVhZC1rZXlzZXQgXFxcIkNvaW5saXN0IEdsb2JhbFxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJGVFNfQzFcXFwiIChyZWFkLWtleXNldCBcXFwiRlRTX0MxXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkNTMV9DMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJDUzFfQzJcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiQ1MyX0MwXFxcIiAocmVhZC1rZXlzZXQgXFxcIkNTMl9DMFxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTVF9DMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJTVF9DMVxcXCIpKVxcblxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJFbWlseVxcXCIgKHJlYWQta2V5c2V0IFxcXCJFbWlseVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJLYWRlbmFcXFwiIChyZWFkLWtleXNldCBcXFwiS2FkZW5hXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIk1BSU5ORVRcXFwiIChyZWFkLWtleXNldCBcXFwiTUFJTk5FVFxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwidGVzdG5ldC1rZXlzZXRzLU5cIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkZQMnpDcDZ0S2l5bm9NdURCSjU1VnNWenR5ckRqSjFTYXJOcnBJSGVrUE0iLCJsb2dzIjoidjl5V0Jsb0hHcjdMdHEwNHEtNnRvZGRHY2swRXVLVDdfVXd6alhZaTMxUSIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") - , (unsafeFromText "eyJoYXNoIjoiV2hKVTlyMXZWc0NOdmFWdUdBaHRYempMdTR3UlR3TGsxNlQ2OEY2N3FMdyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcIkVtaWx5XFxcIiAodGltZSBcXFwiMjAxOS0xMC0wMVQwMDowMDowMFpcXFwiKSBcXFwiRW1pbHlcXFwiIDY2NjY2Ni42NylcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJNQUlOTkVUXzFcXFwiICh0aW1lIFxcXCIyMDE5LTEwLTI5VDE0OjAwOjAwWlxcXCIpIFxcXCJNQUlOTkVUXFxcIiA2NjY2NjYuNjcpXFxuKGNvaW4uY3JlYXRlLWFsbG9jYXRpb24tYWNjb3VudCBcXFwiTUFJTk5FVF8yXFxcIiAodGltZSBcXFwiMjAxOS0xMC0yOVQxNzowMDowMFpcXFwiKSBcXFwiTUFJTk5FVFxcXCIgNjY2NjY2LjY3KVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcIk1BSU5ORVRfM1xcXCIgKHRpbWUgXFxcIjIwMTktMTEtMjlUMTc6MDA6MDBaXFxcIikgXFxcIk1BSU5ORVRcXFwiIDY2NjY2Ni42NylcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDBcXFwiICh0aW1lIFxcXCIxOTAwLTEwLTE1VDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDBcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDFcXFwiICh0aW1lIFxcXCIyMDIwLTEwLTMxVDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDJcXFwiICh0aW1lIFxcXCIxOTAwLTEwLTMxVDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDJcXFwiIDEwMDAwMDAuMClcIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcInRlc3RuZXQtYWxsb2NhdGlvbnMtMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJXaEpVOXIxdlZzQ052YVZ1R0FodFh6akx1NHdSVHdMazE2VDY4RjY3cUx3IiwibG9ncyI6IlNuSnJoM3I1LTdRekVzS3EwQ24tNDNLc29QSmx0Rml6ZHdvV3FrWGNvWWsiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") - , (unsafeFromText "eyJoYXNoIjoibU1neUsxRGpvRGt6Z3ZxdHhvaW84WUt4X3JjY2UtaFR3bWRQdkc5emJXRSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiNGM3MzU2NmI1ZDhmYTRjZDJhMjYyMGY3YjJiYzU3Mjg0YzdmYzVjNDhmOGYwZGIyYmYxNjc1Y2FkMDhkYzRhZlwiOltcIjRjNzM1NjZiNWQ4ZmE0Y2QyYTI2MjBmN2IyYmM1NzI4NGM3ZmM1YzQ4ZjhmMGRiMmJmMTY3NWNhZDA4ZGM0YWZcIl0sXCJlbWlseVwiOltcIjM2ODA1OWFiMjViZWM5MmYxOWE0ZjhjZTE3MjAzMGU1ZDY3MmU0ODc5YWFhZThkNWJlOGI3MDVkZDNkZmFlN2ZcIl0sXCJjYmI5NGIxMmY1NWJkNTQwYTVhYTUwNzYzNTExMTkzOGYyMjgyYzI4OTFiNzhjMTNlNDYyZmEwMThjNDE0NWQ4XCI6W1wiY2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOFwiXSxcIjQ5YjQxMDM0YWI5YmEwYjdmZDkyZmQ1M2ViNzlkN2ZkM2Q2MDExOTFhMTUyNjk2ODI4MzBmOWM5MmUzNjg4YWRcIjpbXCI0OWI0MTAzNGFiOWJhMGI3ZmQ5MmZkNTNlYjc5ZDdmZDNkNjAxMTkxYTE1MjY5NjgyODMwZjljOTJlMzY4OGFkXCJdLFwiYW5hc3Rhc2lhXCI6W1wiMWVjNzRkZTcyNGIzYzcwMDczN2Q5OTkwNmFiYTQ4ZGJlZDZiOTAxNDBiYmM2NDEzM2M1NTg1NzFiMTg4ODNjM1wiXSxcIjVlNGE4ZDUxZmEzOTU4MDI2Y2RkZDkzYmJkODc0ZTFiZGFlMTQ5YTEyYWM2ZjAxNTJlYTI1Mzk0MmVmYzk4OWNcIjpbXCI1ZTRhOGQ1MWZhMzk1ODAyNmNkZGQ5M2JiZDg3NGUxYmRhZTE0OWExMmFjNmYwMTUyZWEyNTM5NDJlZmM5ODljXCJdLFwiMWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZlwiOltcIjFjODM1ZDRlNjc5MTdmZDI1NzgxYjExZGIxYzEyZWZiYzQyOTZjNWM3ZmU5ODFkMzViYmNmNGE0NmE1MzQ0MWZcIl0sXCI4OWYwYTg0MGUzYmFiNGMzMmUwN2IxNDg2MmYwYTBmNDE0NTQzZGEwMzZlY2YzMzlkM2VkN2VjOTNmYTRhNDFiXCI6W1wiODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYlwiXSxcImZhYjkyYzQ3Y2NiMWZkZDI1MTczZTI5ODFlYmIyOWRlOTg5YWNlYTg4NzkyZTM0Y2M4NzI5OGY2YTE1Nzg4NDJcIjpbXCJmYWI5MmM0N2NjYjFmZGQyNTE3M2UyOTgxZWJiMjlkZTk4OWFjZWE4ODc5MmUzNGNjODcyOThmNmExNTc4ODQyXCJdLFwiamVmZlwiOltcImM1MzIxN2JiMDUzYjgyN2I1ZmJiYjMyMmZjZWQ2N2E4NjI5OGVjNDBhNTlhZWVmMTViMjE5MGEwNWFkMGE2YmRcIl0sXCJzdHVhcnRcIjpbXCIwZTMxODBkZDRhZTlkNDM4NWEyMWQ3Y2E5NWNjNzIyOWIwZjZiMmNhOWUwZjQ4NjFkZDRlZWQ2ODUwMDRkZjY2XCJdLFwibGVhaFwiOltcIjIxNjY0MzEzN2ZiNWY2YTEyN2RiYjEwNjM3MDJjYmI3YzFmMTUzNDUxYTFhZDRhZmE5ZjkyZTc3NDQ3Y2MzMzBcIl0sXCIxNTRkNmYyMzk4NjRjMTljNDNlZjM3N2MwM2NjOGRmOGUwZDFlNzkyYTE0M2EwMTQyMzUwMzAyOGNlOTYzYWZhXCI6W1wiMTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYVwiXSxcIjNlODMyMTNiZWRmNmJlMGFhZjhlZDNmOGU3MmZmYjlhMjQwOTMwYjg2OThiOTY0NmU4ZDkxM2I2MWM5M2U0YWJcIjpbXCIzZTgzMjEzYmVkZjZiZTBhYWY4ZWQzZjhlNzJmZmI5YTI0MDkzMGI4Njk4Yjk2NDZlOGQ5MTNiNjFjOTNlNGFiXCJdLFwid2lsbFwiOltcIjgzMGFkNzczNTEwYWIwZjVhMGQ0NTY0YjdiMzFkMmIwYjFiYTdmZDVhMTE2ZjY2NTk4YTFjNjNjYzIxNDJmZDVcIl0sXCJsaW5kYVwiOltcImUxMDAyZGIwODk0Mjk5YmIzNzIzOGJhYjAyMTcwMTgwYzBhZTU2ZjU5MzIxNjliYjJmY2Y3NTYwNTlmZWExNzVcIl0sXCI1NTQ3NTRmNDhiMTZkZjI0YjU1MmY2ODMyZGRhMDkwNjQyZWQ5NjU4NTU5ZmVmOWYzZWUxYmI0NjM3ZWE3Yzk0XCI6W1wiNTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NFwiXSxcIjRhN2MyMGQwODdkZjc2NzUzZTI4ZDc2NWViODRlMTMzODQ3OWRkNmRmMTIxZGRkYTNlNTk1NzZkMGEzMmE1YmZcIjpbXCI0YTdjMjBkMDg3ZGY3Njc1M2UyOGQ3NjVlYjg0ZTEzMzg0NzlkZDZkZjEyMWRkZGEzZTU5NTc2ZDBhMzJhNWJmXCJdLFwiaGVla3l1blwiOltcImRmYjE2YjEzZTQwMzJhNjg3OGZkOTg1MDZiMjJjYjBkNmU1OTMyYzU0MWU2NTZiN2VlNWQ2OWQ3MmU2ZWI3NmVcIl19LFwiY29kZVwiOlwiKGNvaW4uY29pbmJhc2UgXFxcImFuYXN0YXNpYVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbmFzdGFzaWFcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJlbWlseVxcXCIgKHJlYWQta2V5c2V0IFxcXCJlbWlseVxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImhlZWt5dW5cXFwiIChyZWFkLWtleXNldCBcXFwiaGVla3l1blxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImplZmZcXFwiIChyZWFkLWtleXNldCBcXFwiamVmZlxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImxlYWhcXFwiIChyZWFkLWtleXNldCBcXFwibGVhaFxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImxpbmRhXFxcIiAocmVhZC1rZXlzZXQgXFxcImxpbmRhXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwic3R1YXJ0XFxcIiAocmVhZC1rZXlzZXQgXFxcInN0dWFydFxcXCIpIDEwMDAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwid2lsbFxcXCIgKHJlYWQta2V5c2V0IFxcXCJ3aWxsXFxcIikgMTAwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJLYWRlbmFcXFwiIChrZXlzZXQtcmVmLWd1YXJkIFxcXCJLYWRlbmFcXFwiKSAxMDAwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6NGE3YzIwZDA4N2RmNzY3NTNlMjhkNzY1ZWI4NGUxMzM4NDc5ZGQ2ZGYxMjFkZGRhM2U1OTU3NmQwYTMyYTViZlxcXCIgKHJlYWQta2V5c2V0IFxcXCI0YTdjMjBkMDg3ZGY3Njc1M2UyOGQ3NjVlYjg0ZTEzMzg0NzlkZDZkZjEyMWRkZGEzZTU5NTc2ZDBhMzJhNWJmXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazpmYWI5MmM0N2NjYjFmZGQyNTE3M2UyOTgxZWJiMjlkZTk4OWFjZWE4ODc5MmUzNGNjODcyOThmNmExNTc4ODQyXFxcIiAocmVhZC1rZXlzZXQgXFxcImZhYjkyYzQ3Y2NiMWZkZDI1MTczZTI5ODFlYmIyOWRlOTg5YWNlYTg4NzkyZTM0Y2M4NzI5OGY2YTE1Nzg4NDJcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOmNiYjk0YjEyZjU1YmQ1NDBhNWFhNTA3NjM1MTExOTM4ZjIyODJjMjg5MWI3OGMxM2U0NjJmYTAxOGM0MTQ1ZDhcXFwiIChyZWFkLWtleXNldCBcXFwiY2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOFxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6ODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYlxcXCIgKHJlYWQta2V5c2V0IFxcXCI4OWYwYTg0MGUzYmFiNGMzMmUwN2IxNDg2MmYwYTBmNDE0NTQzZGEwMzZlY2YzMzlkM2VkN2VjOTNmYTRhNDFiXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazo0YzczNTY2YjVkOGZhNGNkMmEyNjIwZjdiMmJjNTcyODRjN2ZjNWM0OGY4ZjBkYjJiZjE2NzVjYWQwOGRjNGFmXFxcIiAocmVhZC1rZXlzZXQgXFxcIjRjNzM1NjZiNWQ4ZmE0Y2QyYTI2MjBmN2IyYmM1NzI4NGM3ZmM1YzQ4ZjhmMGRiMmJmMTY3NWNhZDA4ZGM0YWZcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOjFjODM1ZDRlNjc5MTdmZDI1NzgxYjExZGIxYzEyZWZiYzQyOTZjNWM3ZmU5ODFkMzViYmNmNGE0NmE1MzQ0MWZcXFwiIChyZWFkLWtleXNldCBcXFwiMWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZlxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6NTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NFxcXCIgKHJlYWQta2V5c2V0IFxcXCI1NTQ3NTRmNDhiMTZkZjI0YjU1MmY2ODMyZGRhMDkwNjQyZWQ5NjU4NTU5ZmVmOWYzZWUxYmI0NjM3ZWE3Yzk0XFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazozZTgzMjEzYmVkZjZiZTBhYWY4ZWQzZjhlNzJmZmI5YTI0MDkzMGI4Njk4Yjk2NDZlOGQ5MTNiNjFjOTNlNGFiXFxcIiAocmVhZC1rZXlzZXQgXFxcIjNlODMyMTNiZWRmNmJlMGFhZjhlZDNmOGU3MmZmYjlhMjQwOTMwYjg2OThiOTY0NmU4ZDkxM2I2MWM5M2U0YWJcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOjVlNGE4ZDUxZmEzOTU4MDI2Y2RkZDkzYmJkODc0ZTFiZGFlMTQ5YTEyYWM2ZjAxNTJlYTI1Mzk0MmVmYzk4OWNcXFwiIChyZWFkLWtleXNldCBcXFwiNWU0YThkNTFmYTM5NTgwMjZjZGRkOTNiYmQ4NzRlMWJkYWUxNDlhMTJhYzZmMDE1MmVhMjUzOTQyZWZjOTg5Y1xcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6MTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYVxcXCIgKHJlYWQta2V5c2V0IFxcXCIxNTRkNmYyMzk4NjRjMTljNDNlZjM3N2MwM2NjOGRmOGUwZDFlNzkyYTE0M2EwMTQyMzUwMzAyOGNlOTYzYWZhXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazo0OWI0MTAzNGFiOWJhMGI3ZmQ5MmZkNTNlYjc5ZDdmZDNkNjAxMTkxYTE1MjY5NjgyODMwZjljOTJlMzY4OGFkXFxcIiAocmVhZC1rZXlzZXQgXFxcIjQ5YjQxMDM0YWI5YmEwYjdmZDkyZmQ1M2ViNzlkN2ZkM2Q2MDExOTFhMTUyNjk2ODI4MzBmOWM5MmUzNjg4YWRcXFwiKSAxMDAwMDAwMC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwidGVzdG5ldC1ncmFudHMtMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJtTWd5SzFEam9Ea3pndnF0eG9pbzhZS3hfcmNjZS1oVHdtZFB2Rzl6YldFIiwibG9ncyI6InI1NWxHTTJGSGREVWFVc25rQmpZTWFUXzVMQWhoelAycXNzMFpvZndhMDQiLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJhbmFzdGFzaWEiLDEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJlbWlseSIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsImhlZWt5dW4iLDEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJqZWZmIiwxMDAwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwibGVhaCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsImxpbmRhIiwxMDAwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwic3R1YXJ0IiwxMDAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJ3aWxsIiwxMDAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJLYWRlbmEiLDEwMDAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NGE3YzIwZDA4N2RmNzY3NTNlMjhkNzY1ZWI4NGUxMzM4NDc5ZGQ2ZGYxMjFkZGRhM2U1OTU3NmQwYTMyYTViZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6ZmFiOTJjNDdjY2IxZmRkMjUxNzNlMjk4MWViYjI5ZGU5ODlhY2VhODg3OTJlMzRjYzg3Mjk4ZjZhMTU3ODg0MiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6Y2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6ODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NGM3MzU2NmI1ZDhmYTRjZDJhMjYyMGY3YjJiYzU3Mjg0YzdmYzVjNDhmOGYwZGIyYmYxNjc1Y2FkMDhkYzRhZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6MWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6M2U4MzIxM2JlZGY2YmUwYWFmOGVkM2Y4ZTcyZmZiOWEyNDA5MzBiODY5OGI5NjQ2ZThkOTEzYjYxYzkzZTRhYiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NWU0YThkNTFmYTM5NTgwMjZjZGRkOTNiYmQ4NzRlMWJkYWUxNDlhMTJhYzZmMDE1MmVhMjUzOTQyZWZjOTg5YyIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6MTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYSIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NDliNDEwMzRhYjliYTBiN2ZkOTJmZDUzZWI3OWQ3ZmQzZDYwMTE5MWExNTI2OTY4MjgzMGY5YzkyZTM2ODhhZCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9XSwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6OH0") + [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggTm1kUnRzekN3YWNqSEd5eUU5Tl9mbFFNUlJCaGNIVkZQNE9qaGlQZWoxRSJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlB3eDlycG9kS2prSGNPUlh2WFVRSUpjRVZRZDhPSXRNM0FlakNFRExMVXMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") + , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIGg4OWljM2doejIzUmprMHBITkt0Rk93cnZTczdtYm11cWxvVlhPaGwyR0kifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJSUDhnMUJrZnkyQjN1bHE0WWU4amF1VlRZcGpqRXlaLWtydGJ5SVg2STRnIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") + , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggWXhFLUtnQzZKbUttQ2NnS1RKbWxFbl9JNThJNEVYbWhmcnZ6WDdiZXJZayJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6IjFTQmJBNHVzS0E5OFNlX09WRUdkcVk5WjJoSW1jVmcydWpISDJkM1ZmeEkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") + , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6InFsZDBleGFpdDNNRVdYcl9UeFZPcm9BWGNfcGlHSlhSVGJSMTBSb0NsMUkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") + , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIGlJV0FQMW9lbl9rcFhqRmJuUU04N0FKUlpJZ3RzZlpjQXdZckV5MjFSV1EifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiJ3TXdXV3hkSFVuU1VOWXJ1RXlISEtTTzUyeGtkVXU0TXBmbE1FcHYyT05FIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") + , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiaVJ4cktxek5NaU1IbkRPZGFpSG14TmYxWjJKMl9Qb3QzWG50WE5sd0JhZyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") + , (unsafeFromText "eyJoYXNoIjoiRlAyekNwNnRLaXlub011REJKNTVWc1Z6dHlyRGpKMVNhck5ycElIZWtQTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiU0IgPDQzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDI1PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiUFNfQzNcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIkZUU19DMVwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjI5ZjcxMDdiMzlmNmMxOTQ3Zjk2NjIyZjY4OWJlYzY4ZTAxNTczMDc2ZDYwNjExZDNlZjZiOGNiYzQzY2ZhMGJcIixcIjdjMjFmN2I1M2M4MTY3OTgxNTI0ODcwMjRkNzFiZmNiZDQ3YjViODBhZTQzNTk0Yjk0ZGQzODQ1NDgxOGFlZmNcIixcIjFmZjk2OTk0NWFiNjA4OGNiZDNmM2E2YTZiOTcxODc2OTcxOTI3NjNkNzhmMjdmNTViZGRkYmJjMTU3YzAwYzBcIl19LFwiS2FkZW5hXCI6e1wicHJlZFwiOlwia2V5cy1hbGxcIixcImtleXNcIjpbXCIzNWZmMTI5OGM1NmZmYjYwMjI1YmVlZDMyYTYxYWRhNDFhNTdlMjM5ODI2ZWVhOThlZDI5ZTQ4ZmY4YmFjNDNmXCJdfSxcIkVtaWx5XCI6e1wicHJlZFwiOlwia2V5cy1hbGxcIixcImtleXNcIjpbXCIzNWZmMTI5OGM1NmZmYjYwMjI1YmVlZDMyYTYxYWRhNDFhNTdlMjM5ODI2ZWVhOThlZDI5ZTQ4ZmY4YmFjNDNmXCJdfSxcIlNBIDw0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDI2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiUFNfQzhcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDw0MD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDw3PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiQ1MxX0MyXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiOTY1MjlkYmI4MzkwMjc1NDg5MTJiYzZhMWNmZmI2OWM2NzdlZDk3NjYzNTAwMThjYzhjNDZhM2Y4MTlmZTE3NFwiLFwiZTUzNzA4NTY0ZjFhNzhmNmU1YTkzMDlmZDhiOWRkODU2NDY4MzJlMzc0MTYyY2QzYzY3NDIwZTIwMmE3ZTQ1YlwiLFwiNGJiNmI3MWUyZGRjNjEzOTIyNzRkMThkMTQyY2RjOGQ0ZjUwZTU0MzQzMDk4MTM4ZjlhN2QxN2ZiNTYyZDZlYVwiXX0sXCJTQSA8Mj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIkNvaW5saXN0IEdsb2JhbFwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjVhYzAyZDZjZTgwNDcxMmVjNTgyMmFiOTgxM2ZkNDgzMjY1YzEwNmRhM2ZmZjYwY2Q0OTI1ODRiYzI4OTY1ODFcIixcIjExMzYyNTI1MTY0NzU1Mzk4Mjk5YmRmMWQzZGUxZTRjNzVmYWNhOWQ3YzVkZjA0NTM5NTk5OTI4ZjRjOGQ5ZjdcIixcIjgyMTg1ODc1MmY3ZDhlOTg2YWI2YjA4Y2QwNDgxZmY0MDY4ZTMwOGNhMWQyZmY2OGFmMTI0MWVmNTc1Y2UyNTVcIl19LFwiU0IgPDk-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJFQl9DOVwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcIlNBIDwyMD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlBTX0M1XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8MTg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8NDU-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MjM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzU-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTc-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTQ-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8Nj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0MyXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8Mjk-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQSA8OD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNCIDwzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDMzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDEyPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiUFNfQzRcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDwxMT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDw0MT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwyNz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0MxXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJDUzJfQzBcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI5YTJhMTJiYTc5MTkwOWEyYjVlOTJhYjMzNjZmNjBmNDY4OWU1MzMxZWYyODViNzA0ZWZhM2ZkODNiYzk1OWY0XCIsXCI3YmNmNzhmMDllNjRlMzdmZTQ3MDVkNWFiYjM3MzU0OTZmMzFmMDRkMzQ3YzEzOGY1ZGQzZjRlZTI2ODNhOTUyXCIsXCJmNTRlOWYyZDgxYmU0MjJhMDJhZGIwYTE3MmY4OTc1MmZjM2U1ZjlkYWU0MzUyMDg3NzZiZDVkODNhMmY2ZjI0XCJdfSxcIlNBIDw2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0EgPDE4PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDM5PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDQ2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDIwPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8Nz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIk1BSU5ORVRcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJhNDk0NzM3OWM3ZGJiNzZlZTYwYmRlZGQ2NDg0N2ExNWFhNTY1N2VmNDA2MjAxZTQ2ODYxNDc1YzkxZDNjNTFmXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI0OTI2Zjk2M2VlNWEwYzZkZjY3YTFkY2UyNDJmYmMxMWE5MDBjNDMzMmM3N2JkZGZiMGRjNWI2NmY2OTdmZWQwXCJdfSxcIlNBIDwxNT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNCIDwzND5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwxNj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwzNz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwxNT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDw0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDE2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiUFNfQzBcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNUX0MxXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiY2NmNmZhMWZkMzJlNThiMDQwNWYxNjlmZmI0NTVhMWEwNDM0Y2ZhZmY1Yjg1NDk4NjI4MjFmZjZiNTUxZDViM1wiLFwiYWY4MThhNWU4NjcyYWI5M2IwODU5ODdiOTQyZTg3YWE1MmZmNmM4MWJmZmFmYWYzNDM3YzAxYzhhNDFhNmZhOFwiLFwiODc0NjgzMWM1NTgwOTUwZTc0YWVmODY2NTljNmY4ZjFhY2I3MjE1MDY3ZWQ5MWQxMWZlNjkxOTQ1ZjljOGIxZVwiXX0sXCJTQSA8MTM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8MzI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwyND5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDw1PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiQ29pbmxpc3QgTm9uLVVTXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8NDI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MjE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJhbGxvY2F0aW9uMDBcIjpbXCJkODJkMGRjZGU5ODI1NTA1ZDg2YWZiNmRjYzEwNDExZDZiNjdhNDI5YTc5ZTIxYmRhNGJiMTE5YmYyOGFiODcxXCJdLFwiUFNfQzdcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDwzOD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDwxOT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNBIDwzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDE5PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDQ0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDIyPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTQ-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzY-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTc-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8NT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0M5XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQSA8MTA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQSA8OT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlBTX0M2XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8MzE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8Mjg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8Mj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcImFsbG9jYXRpb24wMVwiOltcImI0YzhhM2VhOTFkMzE0NmIwNTYwOTk0NzQwZjBlM2VlZDkxYzU5ZDJlZWNhMWRjOTlmMGMyODcyODQ1YzI5NGRcIl19LFwiY29kZVwiOlwiKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwyPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8Mz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDw0PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8ND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDw1PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8Nj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDw3PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8Nz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDg-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDw4PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8OT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDk-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxMD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDEwPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxMT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDEyPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxMz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDEzPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDE1PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxNj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDE2PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxNz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDE4PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxOT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDE5PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MjA-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwyMD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Nj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw3PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8OD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw5PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8OT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDEwPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTA-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxMT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDExPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxMj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDEzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxND5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDE0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxNT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxNz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDE3PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTg-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxOD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE5PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTk-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyMD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDIwPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MjE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyMT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDIyPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MjI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyMz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDIzPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MjQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDI1PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MjU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyNj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI2PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mjc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyNz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDI4PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mjg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyOT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI5PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzA-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzMD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDMxPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MzE-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzMj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDMyPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzM-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzMz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDM0PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MzQ-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzNT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDM1PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzY-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzNj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDM3PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mzc-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzOD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDM4PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mzk-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzOT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQwPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDA-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw0MT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDQxPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NDI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0Mj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw0ND5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDQ0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NDU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0NT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQ2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MwXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MxXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MxXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MyXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MyXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MzXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MzXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M0XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M0XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M1XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M1XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M2XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M2XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M3XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M3XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M4XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M4XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M5XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M5XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkVCX0M5XFxcIiAocmVhZC1rZXlzZXQgXFxcIkVCX0M5XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkNvaW5saXN0IE5vbi1VU1xcXCIgKHJlYWQta2V5c2V0IFxcXCJDb2lubGlzdCBOb24tVVNcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiQ29pbmxpc3QgR2xvYmFsXFxcIiAocmVhZC1rZXlzZXQgXFxcIkNvaW5saXN0IEdsb2JhbFxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJGVFNfQzFcXFwiIChyZWFkLWtleXNldCBcXFwiRlRTX0MxXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkNTMV9DMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJDUzFfQzJcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiQ1MyX0MwXFxcIiAocmVhZC1rZXlzZXQgXFxcIkNTMl9DMFxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTVF9DMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJTVF9DMVxcXCIpKVxcblxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJFbWlseVxcXCIgKHJlYWQta2V5c2V0IFxcXCJFbWlseVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJLYWRlbmFcXFwiIChyZWFkLWtleXNldCBcXFwiS2FkZW5hXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIk1BSU5ORVRcXFwiIChyZWFkLWtleXNldCBcXFwiTUFJTk5FVFxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwidGVzdG5ldC1rZXlzZXRzLU5cIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkZQMnpDcDZ0S2l5bm9NdURCSjU1VnNWenR5ckRqSjFTYXJOcnBJSGVrUE0iLCJsb2dzIjoiY0NzZzlqbXRKalplOG5lZjF2VjBlU0p0cmhlUUtJeGFrUEFFVHhVVDFnayIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") + , (unsafeFromText "eyJoYXNoIjoiV2hKVTlyMXZWc0NOdmFWdUdBaHRYempMdTR3UlR3TGsxNlQ2OEY2N3FMdyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcIkVtaWx5XFxcIiAodGltZSBcXFwiMjAxOS0xMC0wMVQwMDowMDowMFpcXFwiKSBcXFwiRW1pbHlcXFwiIDY2NjY2Ni42NylcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJNQUlOTkVUXzFcXFwiICh0aW1lIFxcXCIyMDE5LTEwLTI5VDE0OjAwOjAwWlxcXCIpIFxcXCJNQUlOTkVUXFxcIiA2NjY2NjYuNjcpXFxuKGNvaW4uY3JlYXRlLWFsbG9jYXRpb24tYWNjb3VudCBcXFwiTUFJTk5FVF8yXFxcIiAodGltZSBcXFwiMjAxOS0xMC0yOVQxNzowMDowMFpcXFwiKSBcXFwiTUFJTk5FVFxcXCIgNjY2NjY2LjY3KVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcIk1BSU5ORVRfM1xcXCIgKHRpbWUgXFxcIjIwMTktMTEtMjlUMTc6MDA6MDBaXFxcIikgXFxcIk1BSU5ORVRcXFwiIDY2NjY2Ni42NylcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDBcXFwiICh0aW1lIFxcXCIxOTAwLTEwLTE1VDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDBcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDFcXFwiICh0aW1lIFxcXCIyMDIwLTEwLTMxVDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDJcXFwiICh0aW1lIFxcXCIxOTAwLTEwLTMxVDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDJcXFwiIDEwMDAwMDAuMClcIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcInRlc3RuZXQtYWxsb2NhdGlvbnMtMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJXaEpVOXIxdlZzQ052YVZ1R0FodFh6akx1NHdSVHdMazE2VDY4RjY3cUx3IiwibG9ncyI6IkI1elZaYVRDWk9sbERjR2tGRDRhcHJPTi1mUlY1ZFlUWEJyTmtSSVo4LTQiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") + , (unsafeFromText "eyJoYXNoIjoibU1neUsxRGpvRGt6Z3ZxdHhvaW84WUt4X3JjY2UtaFR3bWRQdkc5emJXRSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiNGM3MzU2NmI1ZDhmYTRjZDJhMjYyMGY3YjJiYzU3Mjg0YzdmYzVjNDhmOGYwZGIyYmYxNjc1Y2FkMDhkYzRhZlwiOltcIjRjNzM1NjZiNWQ4ZmE0Y2QyYTI2MjBmN2IyYmM1NzI4NGM3ZmM1YzQ4ZjhmMGRiMmJmMTY3NWNhZDA4ZGM0YWZcIl0sXCJlbWlseVwiOltcIjM2ODA1OWFiMjViZWM5MmYxOWE0ZjhjZTE3MjAzMGU1ZDY3MmU0ODc5YWFhZThkNWJlOGI3MDVkZDNkZmFlN2ZcIl0sXCJjYmI5NGIxMmY1NWJkNTQwYTVhYTUwNzYzNTExMTkzOGYyMjgyYzI4OTFiNzhjMTNlNDYyZmEwMThjNDE0NWQ4XCI6W1wiY2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOFwiXSxcIjQ5YjQxMDM0YWI5YmEwYjdmZDkyZmQ1M2ViNzlkN2ZkM2Q2MDExOTFhMTUyNjk2ODI4MzBmOWM5MmUzNjg4YWRcIjpbXCI0OWI0MTAzNGFiOWJhMGI3ZmQ5MmZkNTNlYjc5ZDdmZDNkNjAxMTkxYTE1MjY5NjgyODMwZjljOTJlMzY4OGFkXCJdLFwiYW5hc3Rhc2lhXCI6W1wiMWVjNzRkZTcyNGIzYzcwMDczN2Q5OTkwNmFiYTQ4ZGJlZDZiOTAxNDBiYmM2NDEzM2M1NTg1NzFiMTg4ODNjM1wiXSxcIjVlNGE4ZDUxZmEzOTU4MDI2Y2RkZDkzYmJkODc0ZTFiZGFlMTQ5YTEyYWM2ZjAxNTJlYTI1Mzk0MmVmYzk4OWNcIjpbXCI1ZTRhOGQ1MWZhMzk1ODAyNmNkZGQ5M2JiZDg3NGUxYmRhZTE0OWExMmFjNmYwMTUyZWEyNTM5NDJlZmM5ODljXCJdLFwiMWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZlwiOltcIjFjODM1ZDRlNjc5MTdmZDI1NzgxYjExZGIxYzEyZWZiYzQyOTZjNWM3ZmU5ODFkMzViYmNmNGE0NmE1MzQ0MWZcIl0sXCI4OWYwYTg0MGUzYmFiNGMzMmUwN2IxNDg2MmYwYTBmNDE0NTQzZGEwMzZlY2YzMzlkM2VkN2VjOTNmYTRhNDFiXCI6W1wiODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYlwiXSxcImZhYjkyYzQ3Y2NiMWZkZDI1MTczZTI5ODFlYmIyOWRlOTg5YWNlYTg4NzkyZTM0Y2M4NzI5OGY2YTE1Nzg4NDJcIjpbXCJmYWI5MmM0N2NjYjFmZGQyNTE3M2UyOTgxZWJiMjlkZTk4OWFjZWE4ODc5MmUzNGNjODcyOThmNmExNTc4ODQyXCJdLFwiamVmZlwiOltcImM1MzIxN2JiMDUzYjgyN2I1ZmJiYjMyMmZjZWQ2N2E4NjI5OGVjNDBhNTlhZWVmMTViMjE5MGEwNWFkMGE2YmRcIl0sXCJzdHVhcnRcIjpbXCIwZTMxODBkZDRhZTlkNDM4NWEyMWQ3Y2E5NWNjNzIyOWIwZjZiMmNhOWUwZjQ4NjFkZDRlZWQ2ODUwMDRkZjY2XCJdLFwibGVhaFwiOltcIjIxNjY0MzEzN2ZiNWY2YTEyN2RiYjEwNjM3MDJjYmI3YzFmMTUzNDUxYTFhZDRhZmE5ZjkyZTc3NDQ3Y2MzMzBcIl0sXCIxNTRkNmYyMzk4NjRjMTljNDNlZjM3N2MwM2NjOGRmOGUwZDFlNzkyYTE0M2EwMTQyMzUwMzAyOGNlOTYzYWZhXCI6W1wiMTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYVwiXSxcIjNlODMyMTNiZWRmNmJlMGFhZjhlZDNmOGU3MmZmYjlhMjQwOTMwYjg2OThiOTY0NmU4ZDkxM2I2MWM5M2U0YWJcIjpbXCIzZTgzMjEzYmVkZjZiZTBhYWY4ZWQzZjhlNzJmZmI5YTI0MDkzMGI4Njk4Yjk2NDZlOGQ5MTNiNjFjOTNlNGFiXCJdLFwid2lsbFwiOltcIjgzMGFkNzczNTEwYWIwZjVhMGQ0NTY0YjdiMzFkMmIwYjFiYTdmZDVhMTE2ZjY2NTk4YTFjNjNjYzIxNDJmZDVcIl0sXCJsaW5kYVwiOltcImUxMDAyZGIwODk0Mjk5YmIzNzIzOGJhYjAyMTcwMTgwYzBhZTU2ZjU5MzIxNjliYjJmY2Y3NTYwNTlmZWExNzVcIl0sXCI1NTQ3NTRmNDhiMTZkZjI0YjU1MmY2ODMyZGRhMDkwNjQyZWQ5NjU4NTU5ZmVmOWYzZWUxYmI0NjM3ZWE3Yzk0XCI6W1wiNTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NFwiXSxcIjRhN2MyMGQwODdkZjc2NzUzZTI4ZDc2NWViODRlMTMzODQ3OWRkNmRmMTIxZGRkYTNlNTk1NzZkMGEzMmE1YmZcIjpbXCI0YTdjMjBkMDg3ZGY3Njc1M2UyOGQ3NjVlYjg0ZTEzMzg0NzlkZDZkZjEyMWRkZGEzZTU5NTc2ZDBhMzJhNWJmXCJdLFwiaGVla3l1blwiOltcImRmYjE2YjEzZTQwMzJhNjg3OGZkOTg1MDZiMjJjYjBkNmU1OTMyYzU0MWU2NTZiN2VlNWQ2OWQ3MmU2ZWI3NmVcIl19LFwiY29kZVwiOlwiKGNvaW4uY29pbmJhc2UgXFxcImFuYXN0YXNpYVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbmFzdGFzaWFcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJlbWlseVxcXCIgKHJlYWQta2V5c2V0IFxcXCJlbWlseVxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImhlZWt5dW5cXFwiIChyZWFkLWtleXNldCBcXFwiaGVla3l1blxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImplZmZcXFwiIChyZWFkLWtleXNldCBcXFwiamVmZlxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImxlYWhcXFwiIChyZWFkLWtleXNldCBcXFwibGVhaFxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImxpbmRhXFxcIiAocmVhZC1rZXlzZXQgXFxcImxpbmRhXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwic3R1YXJ0XFxcIiAocmVhZC1rZXlzZXQgXFxcInN0dWFydFxcXCIpIDEwMDAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwid2lsbFxcXCIgKHJlYWQta2V5c2V0IFxcXCJ3aWxsXFxcIikgMTAwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJLYWRlbmFcXFwiIChrZXlzZXQtcmVmLWd1YXJkIFxcXCJLYWRlbmFcXFwiKSAxMDAwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6NGE3YzIwZDA4N2RmNzY3NTNlMjhkNzY1ZWI4NGUxMzM4NDc5ZGQ2ZGYxMjFkZGRhM2U1OTU3NmQwYTMyYTViZlxcXCIgKHJlYWQta2V5c2V0IFxcXCI0YTdjMjBkMDg3ZGY3Njc1M2UyOGQ3NjVlYjg0ZTEzMzg0NzlkZDZkZjEyMWRkZGEzZTU5NTc2ZDBhMzJhNWJmXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazpmYWI5MmM0N2NjYjFmZGQyNTE3M2UyOTgxZWJiMjlkZTk4OWFjZWE4ODc5MmUzNGNjODcyOThmNmExNTc4ODQyXFxcIiAocmVhZC1rZXlzZXQgXFxcImZhYjkyYzQ3Y2NiMWZkZDI1MTczZTI5ODFlYmIyOWRlOTg5YWNlYTg4NzkyZTM0Y2M4NzI5OGY2YTE1Nzg4NDJcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOmNiYjk0YjEyZjU1YmQ1NDBhNWFhNTA3NjM1MTExOTM4ZjIyODJjMjg5MWI3OGMxM2U0NjJmYTAxOGM0MTQ1ZDhcXFwiIChyZWFkLWtleXNldCBcXFwiY2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOFxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6ODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYlxcXCIgKHJlYWQta2V5c2V0IFxcXCI4OWYwYTg0MGUzYmFiNGMzMmUwN2IxNDg2MmYwYTBmNDE0NTQzZGEwMzZlY2YzMzlkM2VkN2VjOTNmYTRhNDFiXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazo0YzczNTY2YjVkOGZhNGNkMmEyNjIwZjdiMmJjNTcyODRjN2ZjNWM0OGY4ZjBkYjJiZjE2NzVjYWQwOGRjNGFmXFxcIiAocmVhZC1rZXlzZXQgXFxcIjRjNzM1NjZiNWQ4ZmE0Y2QyYTI2MjBmN2IyYmM1NzI4NGM3ZmM1YzQ4ZjhmMGRiMmJmMTY3NWNhZDA4ZGM0YWZcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOjFjODM1ZDRlNjc5MTdmZDI1NzgxYjExZGIxYzEyZWZiYzQyOTZjNWM3ZmU5ODFkMzViYmNmNGE0NmE1MzQ0MWZcXFwiIChyZWFkLWtleXNldCBcXFwiMWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZlxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6NTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NFxcXCIgKHJlYWQta2V5c2V0IFxcXCI1NTQ3NTRmNDhiMTZkZjI0YjU1MmY2ODMyZGRhMDkwNjQyZWQ5NjU4NTU5ZmVmOWYzZWUxYmI0NjM3ZWE3Yzk0XFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazozZTgzMjEzYmVkZjZiZTBhYWY4ZWQzZjhlNzJmZmI5YTI0MDkzMGI4Njk4Yjk2NDZlOGQ5MTNiNjFjOTNlNGFiXFxcIiAocmVhZC1rZXlzZXQgXFxcIjNlODMyMTNiZWRmNmJlMGFhZjhlZDNmOGU3MmZmYjlhMjQwOTMwYjg2OThiOTY0NmU4ZDkxM2I2MWM5M2U0YWJcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOjVlNGE4ZDUxZmEzOTU4MDI2Y2RkZDkzYmJkODc0ZTFiZGFlMTQ5YTEyYWM2ZjAxNTJlYTI1Mzk0MmVmYzk4OWNcXFwiIChyZWFkLWtleXNldCBcXFwiNWU0YThkNTFmYTM5NTgwMjZjZGRkOTNiYmQ4NzRlMWJkYWUxNDlhMTJhYzZmMDE1MmVhMjUzOTQyZWZjOTg5Y1xcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6MTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYVxcXCIgKHJlYWQta2V5c2V0IFxcXCIxNTRkNmYyMzk4NjRjMTljNDNlZjM3N2MwM2NjOGRmOGUwZDFlNzkyYTE0M2EwMTQyMzUwMzAyOGNlOTYzYWZhXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazo0OWI0MTAzNGFiOWJhMGI3ZmQ5MmZkNTNlYjc5ZDdmZDNkNjAxMTkxYTE1MjY5NjgyODMwZjljOTJlMzY4OGFkXFxcIiAocmVhZC1rZXlzZXQgXFxcIjQ5YjQxMDM0YWI5YmEwYjdmZDkyZmQ1M2ViNzlkN2ZkM2Q2MDExOTFhMTUyNjk2ODI4MzBmOWM5MmUzNjg4YWRcXFwiKSAxMDAwMDAwMC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwidGVzdG5ldC1ncmFudHMtMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJtTWd5SzFEam9Ea3pndnF0eG9pbzhZS3hfcmNjZS1oVHdtZFB2Rzl6YldFIiwibG9ncyI6Inkwcl9hODB2QzJhc2RsZW9GWVhXT1dHVlR2QVROWUlYRFR2MHRkTTgtZ28iLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJhbmFzdGFzaWEiLDEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJlbWlseSIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsImhlZWt5dW4iLDEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJqZWZmIiwxMDAwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwibGVhaCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsImxpbmRhIiwxMDAwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwic3R1YXJ0IiwxMDAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJ3aWxsIiwxMDAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJLYWRlbmEiLDEwMDAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NGE3YzIwZDA4N2RmNzY3NTNlMjhkNzY1ZWI4NGUxMzM4NDc5ZGQ2ZGYxMjFkZGRhM2U1OTU3NmQwYTMyYTViZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6ZmFiOTJjNDdjY2IxZmRkMjUxNzNlMjk4MWViYjI5ZGU5ODlhY2VhODg3OTJlMzRjYzg3Mjk4ZjZhMTU3ODg0MiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6Y2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6ODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NGM3MzU2NmI1ZDhmYTRjZDJhMjYyMGY3YjJiYzU3Mjg0YzdmYzVjNDhmOGYwZGIyYmYxNjc1Y2FkMDhkYzRhZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6MWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6M2U4MzIxM2JlZGY2YmUwYWFmOGVkM2Y4ZTcyZmZiOWEyNDA5MzBiODY5OGI5NjQ2ZThkOTEzYjYxYzkzZTRhYiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NWU0YThkNTFmYTM5NTgwMjZjZGRkOTNiYmQ4NzRlMWJkYWUxNDlhMTJhYzZmMDE1MmVhMjUzOTQyZWZjOTg5YyIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6MTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYSIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NDliNDEwMzRhYjliYTBiN2ZkOTJmZDUzZWI3OWQ3ZmQzZDYwMTE5MWExNTI2OTY4MjgzMGY5YzkyZTM2ODhhZCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9XSwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6OH0") ] diff --git a/src/Chainweb/BlockHeader/Genesis/Testnet051to19Payload.hs b/src/Chainweb/BlockHeader/Genesis/Testnet051to19Payload.hs index f6ed524ba..9aaa1f10b 100644 --- a/src/Chainweb/BlockHeader/Genesis/Testnet051to19Payload.hs +++ b/src/Chainweb/BlockHeader/Genesis/Testnet051to19Payload.hs @@ -21,19 +21,19 @@ payloadBlock where actualHash, expectedHash :: BlockPayloadHash actualHash = _payloadWithOutputsPayloadHash payload - expectedHash = unsafeFromText "xT2GtnYrfB1cVrH1fGTS8Wf5_tcJ8heB9Dv089qp0HQ" + expectedHash = unsafeFromText "TRJduDgOWQq80gDgTeXzD1BcXdk9zCUnbN70hVAjSaE" payload = newPayloadWithOutputs minerData coinbase txs minerData = unsafeFromText "eyJhY2NvdW50IjoiTm9NaW5lciIsInByZWRpY2F0ZSI6IjwiLCJwdWJsaWMta2V5cyI6W119" coinbase = unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6Ik5PX0NPSU5CQVNFIn0sInJlcUtleSI6IkRsZFJ3Q2JsUTdMb3F5NndZSm5hb2RIbDMwZDNqM2VILXF0RnpmRXY0NmciLCJsb2dzIjpudWxsLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjpudWxsfQ" txs = V.fromList - [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggZms4ajZKMUI5WUFaTzBBbEI4QllRRklMZHg1N2Q3bmJXaHdGcHItLXFMbyJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlNRMVFncFNSMERqMEtLSHRHRmtLX2dWbkRGdWpJVkJCWTRQY25RQmdOYnMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") - , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIE4tRDhmaUxuSmRsTGt4Q2dMcHdCM25odDd1bk1CYmstQTRVdy0zMUNnLXcifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJDNDJQSVBoeGN5NVRULU5sSXNqTEZnRjRfR2dWYVZRN3EzM1oxR3JUVGpZIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") - , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggY2JQU0FpNS1Yd29SbzBpMlNDQWE5cDRJNVJzcHpTYUJwbThhcTB2M21rYyJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6InVtMmdlUDBhZnpwSVFKS0dydUY0djZqZzhYa25sem5lQXdNa2RNWF9BZEEiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") - , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6IjdLQjJVUGZGX3RJTUp4S1VhTlZ2RUFjdkx1amN0bzNQWnVwY0RCcFF1MzAiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") - , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIDBySDJ5Q1pucmNEOWlNc3EtTm01Nzh4dUR4VUpvTmZKeXBZeUVrdUNnS00ifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiI2OEkyQ2dmZTNzQ3RRTVlqTi1rMnVvZ2JGYnpnbzNOMUhoVHA5ZEZMMEs0IiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") - , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiWXJLZ3BSdjVGU0JYQnhJWVBDMGlUNDNSLUJuZ2dkZTVLU042N280OVpMQSIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") - , (unsafeFromText "eyJoYXNoIjoiRlAyekNwNnRLaXlub011REJKNTVWc1Z6dHlyRGpKMVNhck5ycElIZWtQTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiU0IgPDQzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDI1PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiUFNfQzNcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIkZUU19DMVwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjI5ZjcxMDdiMzlmNmMxOTQ3Zjk2NjIyZjY4OWJlYzY4ZTAxNTczMDc2ZDYwNjExZDNlZjZiOGNiYzQzY2ZhMGJcIixcIjdjMjFmN2I1M2M4MTY3OTgxNTI0ODcwMjRkNzFiZmNiZDQ3YjViODBhZTQzNTk0Yjk0ZGQzODQ1NDgxOGFlZmNcIixcIjFmZjk2OTk0NWFiNjA4OGNiZDNmM2E2YTZiOTcxODc2OTcxOTI3NjNkNzhmMjdmNTViZGRkYmJjMTU3YzAwYzBcIl19LFwiS2FkZW5hXCI6e1wicHJlZFwiOlwia2V5cy1hbGxcIixcImtleXNcIjpbXCIzNWZmMTI5OGM1NmZmYjYwMjI1YmVlZDMyYTYxYWRhNDFhNTdlMjM5ODI2ZWVhOThlZDI5ZTQ4ZmY4YmFjNDNmXCJdfSxcIkVtaWx5XCI6e1wicHJlZFwiOlwia2V5cy1hbGxcIixcImtleXNcIjpbXCIzNWZmMTI5OGM1NmZmYjYwMjI1YmVlZDMyYTYxYWRhNDFhNTdlMjM5ODI2ZWVhOThlZDI5ZTQ4ZmY4YmFjNDNmXCJdfSxcIlNBIDw0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDI2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiUFNfQzhcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDw0MD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDw3PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiQ1MxX0MyXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiOTY1MjlkYmI4MzkwMjc1NDg5MTJiYzZhMWNmZmI2OWM2NzdlZDk3NjYzNTAwMThjYzhjNDZhM2Y4MTlmZTE3NFwiLFwiZTUzNzA4NTY0ZjFhNzhmNmU1YTkzMDlmZDhiOWRkODU2NDY4MzJlMzc0MTYyY2QzYzY3NDIwZTIwMmE3ZTQ1YlwiLFwiNGJiNmI3MWUyZGRjNjEzOTIyNzRkMThkMTQyY2RjOGQ0ZjUwZTU0MzQzMDk4MTM4ZjlhN2QxN2ZiNTYyZDZlYVwiXX0sXCJTQSA8Mj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIkNvaW5saXN0IEdsb2JhbFwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjVhYzAyZDZjZTgwNDcxMmVjNTgyMmFiOTgxM2ZkNDgzMjY1YzEwNmRhM2ZmZjYwY2Q0OTI1ODRiYzI4OTY1ODFcIixcIjExMzYyNTI1MTY0NzU1Mzk4Mjk5YmRmMWQzZGUxZTRjNzVmYWNhOWQ3YzVkZjA0NTM5NTk5OTI4ZjRjOGQ5ZjdcIixcIjgyMTg1ODc1MmY3ZDhlOTg2YWI2YjA4Y2QwNDgxZmY0MDY4ZTMwOGNhMWQyZmY2OGFmMTI0MWVmNTc1Y2UyNTVcIl19LFwiU0IgPDk-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJFQl9DOVwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcIlNBIDwyMD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlBTX0M1XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8MTg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8NDU-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MjM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzU-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTc-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTQ-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8Nj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0MyXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8Mjk-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQSA8OD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNCIDwzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDMzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDEyPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiUFNfQzRcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDwxMT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDw0MT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwyNz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0MxXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJDUzJfQzBcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI5YTJhMTJiYTc5MTkwOWEyYjVlOTJhYjMzNjZmNjBmNDY4OWU1MzMxZWYyODViNzA0ZWZhM2ZkODNiYzk1OWY0XCIsXCI3YmNmNzhmMDllNjRlMzdmZTQ3MDVkNWFiYjM3MzU0OTZmMzFmMDRkMzQ3YzEzOGY1ZGQzZjRlZTI2ODNhOTUyXCIsXCJmNTRlOWYyZDgxYmU0MjJhMDJhZGIwYTE3MmY4OTc1MmZjM2U1ZjlkYWU0MzUyMDg3NzZiZDVkODNhMmY2ZjI0XCJdfSxcIlNBIDw2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0EgPDE4PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDM5PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDQ2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDIwPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8Nz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIk1BSU5ORVRcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJhNDk0NzM3OWM3ZGJiNzZlZTYwYmRlZGQ2NDg0N2ExNWFhNTY1N2VmNDA2MjAxZTQ2ODYxNDc1YzkxZDNjNTFmXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI0OTI2Zjk2M2VlNWEwYzZkZjY3YTFkY2UyNDJmYmMxMWE5MDBjNDMzMmM3N2JkZGZiMGRjNWI2NmY2OTdmZWQwXCJdfSxcIlNBIDwxNT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNCIDwzND5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwxNj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwzNz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwxNT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDw0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDE2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiUFNfQzBcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNUX0MxXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiY2NmNmZhMWZkMzJlNThiMDQwNWYxNjlmZmI0NTVhMWEwNDM0Y2ZhZmY1Yjg1NDk4NjI4MjFmZjZiNTUxZDViM1wiLFwiYWY4MThhNWU4NjcyYWI5M2IwODU5ODdiOTQyZTg3YWE1MmZmNmM4MWJmZmFmYWYzNDM3YzAxYzhhNDFhNmZhOFwiLFwiODc0NjgzMWM1NTgwOTUwZTc0YWVmODY2NTljNmY4ZjFhY2I3MjE1MDY3ZWQ5MWQxMWZlNjkxOTQ1ZjljOGIxZVwiXX0sXCJTQSA8MTM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8MzI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwyND5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDw1PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiQ29pbmxpc3QgTm9uLVVTXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8NDI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MjE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJhbGxvY2F0aW9uMDBcIjpbXCJkODJkMGRjZGU5ODI1NTA1ZDg2YWZiNmRjYzEwNDExZDZiNjdhNDI5YTc5ZTIxYmRhNGJiMTE5YmYyOGFiODcxXCJdLFwiUFNfQzdcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDwzOD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDwxOT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNBIDwzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDE5PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDQ0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDIyPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTQ-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzY-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTc-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8NT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0M5XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQSA8MTA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQSA8OT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlBTX0M2XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8MzE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8Mjg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8Mj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcImFsbG9jYXRpb24wMVwiOltcImI0YzhhM2VhOTFkMzE0NmIwNTYwOTk0NzQwZjBlM2VlZDkxYzU5ZDJlZWNhMWRjOTlmMGMyODcyODQ1YzI5NGRcIl19LFwiY29kZVwiOlwiKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwyPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8Mz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDw0PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8ND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDw1PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8Nj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDw3PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8Nz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDg-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDw4PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8OT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDk-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxMD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDEwPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxMT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDEyPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxMz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDEzPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDE1PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxNj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDE2PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxNz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDE4PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxOT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDE5PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MjA-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwyMD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Nj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw3PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8OD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw5PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8OT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDEwPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTA-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxMT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDExPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxMj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDEzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxND5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDE0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxNT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxNz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDE3PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTg-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxOD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE5PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTk-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyMD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDIwPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MjE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyMT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDIyPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MjI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyMz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDIzPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MjQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDI1PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MjU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyNj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI2PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mjc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyNz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDI4PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mjg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyOT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI5PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzA-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzMD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDMxPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MzE-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzMj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDMyPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzM-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzMz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDM0PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MzQ-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzNT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDM1PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzY-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzNj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDM3PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mzc-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzOD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDM4PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mzk-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzOT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQwPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDA-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw0MT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDQxPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NDI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0Mj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw0ND5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDQ0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NDU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0NT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQ2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MwXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MxXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MxXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MyXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MyXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MzXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MzXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M0XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M0XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M1XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M1XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M2XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M2XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M3XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M3XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M4XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M4XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M5XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M5XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkVCX0M5XFxcIiAocmVhZC1rZXlzZXQgXFxcIkVCX0M5XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkNvaW5saXN0IE5vbi1VU1xcXCIgKHJlYWQta2V5c2V0IFxcXCJDb2lubGlzdCBOb24tVVNcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiQ29pbmxpc3QgR2xvYmFsXFxcIiAocmVhZC1rZXlzZXQgXFxcIkNvaW5saXN0IEdsb2JhbFxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJGVFNfQzFcXFwiIChyZWFkLWtleXNldCBcXFwiRlRTX0MxXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkNTMV9DMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJDUzFfQzJcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiQ1MyX0MwXFxcIiAocmVhZC1rZXlzZXQgXFxcIkNTMl9DMFxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTVF9DMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJTVF9DMVxcXCIpKVxcblxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJFbWlseVxcXCIgKHJlYWQta2V5c2V0IFxcXCJFbWlseVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJLYWRlbmFcXFwiIChyZWFkLWtleXNldCBcXFwiS2FkZW5hXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIk1BSU5ORVRcXFwiIChyZWFkLWtleXNldCBcXFwiTUFJTk5FVFxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwidGVzdG5ldC1rZXlzZXRzLU5cIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkZQMnpDcDZ0S2l5bm9NdURCSjU1VnNWenR5ckRqSjFTYXJOcnBJSGVrUE0iLCJsb2dzIjoidjl5V0Jsb0hHcjdMdHEwNHEtNnRvZGRHY2swRXVLVDdfVXd6alhZaTMxUSIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") - , (unsafeFromText "eyJoYXNoIjoiV2hKVTlyMXZWc0NOdmFWdUdBaHRYempMdTR3UlR3TGsxNlQ2OEY2N3FMdyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcIkVtaWx5XFxcIiAodGltZSBcXFwiMjAxOS0xMC0wMVQwMDowMDowMFpcXFwiKSBcXFwiRW1pbHlcXFwiIDY2NjY2Ni42NylcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJNQUlOTkVUXzFcXFwiICh0aW1lIFxcXCIyMDE5LTEwLTI5VDE0OjAwOjAwWlxcXCIpIFxcXCJNQUlOTkVUXFxcIiA2NjY2NjYuNjcpXFxuKGNvaW4uY3JlYXRlLWFsbG9jYXRpb24tYWNjb3VudCBcXFwiTUFJTk5FVF8yXFxcIiAodGltZSBcXFwiMjAxOS0xMC0yOVQxNzowMDowMFpcXFwiKSBcXFwiTUFJTk5FVFxcXCIgNjY2NjY2LjY3KVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcIk1BSU5ORVRfM1xcXCIgKHRpbWUgXFxcIjIwMTktMTEtMjlUMTc6MDA6MDBaXFxcIikgXFxcIk1BSU5ORVRcXFwiIDY2NjY2Ni42NylcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDBcXFwiICh0aW1lIFxcXCIxOTAwLTEwLTE1VDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDBcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDFcXFwiICh0aW1lIFxcXCIyMDIwLTEwLTMxVDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDJcXFwiICh0aW1lIFxcXCIxOTAwLTEwLTMxVDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDJcXFwiIDEwMDAwMDAuMClcIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcInRlc3RuZXQtYWxsb2NhdGlvbnMtMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJXaEpVOXIxdlZzQ052YVZ1R0FodFh6akx1NHdSVHdMazE2VDY4RjY3cUx3IiwibG9ncyI6IlNuSnJoM3I1LTdRekVzS3EwQ24tNDNLc29QSmx0Rml6ZHdvV3FrWGNvWWsiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") - , (unsafeFromText "eyJoYXNoIjoieDZKbnc4YXhaYVJLTVphVEtmTzA2dXMyQTRrRTBES2owRm5BVEZXVWVXVSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiNGM3MzU2NmI1ZDhmYTRjZDJhMjYyMGY3YjJiYzU3Mjg0YzdmYzVjNDhmOGYwZGIyYmYxNjc1Y2FkMDhkYzRhZlwiOltcIjRjNzM1NjZiNWQ4ZmE0Y2QyYTI2MjBmN2IyYmM1NzI4NGM3ZmM1YzQ4ZjhmMGRiMmJmMTY3NWNhZDA4ZGM0YWZcIl0sXCJlbWlseVwiOltcIjM2ODA1OWFiMjViZWM5MmYxOWE0ZjhjZTE3MjAzMGU1ZDY3MmU0ODc5YWFhZThkNWJlOGI3MDVkZDNkZmFlN2ZcIl0sXCJjYmI5NGIxMmY1NWJkNTQwYTVhYTUwNzYzNTExMTkzOGYyMjgyYzI4OTFiNzhjMTNlNDYyZmEwMThjNDE0NWQ4XCI6W1wiY2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOFwiXSxcIjQ5YjQxMDM0YWI5YmEwYjdmZDkyZmQ1M2ViNzlkN2ZkM2Q2MDExOTFhMTUyNjk2ODI4MzBmOWM5MmUzNjg4YWRcIjpbXCI0OWI0MTAzNGFiOWJhMGI3ZmQ5MmZkNTNlYjc5ZDdmZDNkNjAxMTkxYTE1MjY5NjgyODMwZjljOTJlMzY4OGFkXCJdLFwiYW5hc3Rhc2lhXCI6W1wiMWVjNzRkZTcyNGIzYzcwMDczN2Q5OTkwNmFiYTQ4ZGJlZDZiOTAxNDBiYmM2NDEzM2M1NTg1NzFiMTg4ODNjM1wiXSxcIjVlNGE4ZDUxZmEzOTU4MDI2Y2RkZDkzYmJkODc0ZTFiZGFlMTQ5YTEyYWM2ZjAxNTJlYTI1Mzk0MmVmYzk4OWNcIjpbXCI1ZTRhOGQ1MWZhMzk1ODAyNmNkZGQ5M2JiZDg3NGUxYmRhZTE0OWExMmFjNmYwMTUyZWEyNTM5NDJlZmM5ODljXCJdLFwiMWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZlwiOltcIjFjODM1ZDRlNjc5MTdmZDI1NzgxYjExZGIxYzEyZWZiYzQyOTZjNWM3ZmU5ODFkMzViYmNmNGE0NmE1MzQ0MWZcIl0sXCI4OWYwYTg0MGUzYmFiNGMzMmUwN2IxNDg2MmYwYTBmNDE0NTQzZGEwMzZlY2YzMzlkM2VkN2VjOTNmYTRhNDFiXCI6W1wiODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYlwiXSxcImZhYjkyYzQ3Y2NiMWZkZDI1MTczZTI5ODFlYmIyOWRlOTg5YWNlYTg4NzkyZTM0Y2M4NzI5OGY2YTE1Nzg4NDJcIjpbXCJmYWI5MmM0N2NjYjFmZGQyNTE3M2UyOTgxZWJiMjlkZTk4OWFjZWE4ODc5MmUzNGNjODcyOThmNmExNTc4ODQyXCJdLFwiamVmZlwiOltcImM1MzIxN2JiMDUzYjgyN2I1ZmJiYjMyMmZjZWQ2N2E4NjI5OGVjNDBhNTlhZWVmMTViMjE5MGEwNWFkMGE2YmRcIl0sXCJzdHVhcnRcIjpbXCIwZTMxODBkZDRhZTlkNDM4NWEyMWQ3Y2E5NWNjNzIyOWIwZjZiMmNhOWUwZjQ4NjFkZDRlZWQ2ODUwMDRkZjY2XCJdLFwibGVhaFwiOltcIjIxNjY0MzEzN2ZiNWY2YTEyN2RiYjEwNjM3MDJjYmI3YzFmMTUzNDUxYTFhZDRhZmE5ZjkyZTc3NDQ3Y2MzMzBcIl0sXCIxNTRkNmYyMzk4NjRjMTljNDNlZjM3N2MwM2NjOGRmOGUwZDFlNzkyYTE0M2EwMTQyMzUwMzAyOGNlOTYzYWZhXCI6W1wiMTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYVwiXSxcIjNlODMyMTNiZWRmNmJlMGFhZjhlZDNmOGU3MmZmYjlhMjQwOTMwYjg2OThiOTY0NmU4ZDkxM2I2MWM5M2U0YWJcIjpbXCIzZTgzMjEzYmVkZjZiZTBhYWY4ZWQzZjhlNzJmZmI5YTI0MDkzMGI4Njk4Yjk2NDZlOGQ5MTNiNjFjOTNlNGFiXCJdLFwid2lsbFwiOltcIjgzMGFkNzczNTEwYWIwZjVhMGQ0NTY0YjdiMzFkMmIwYjFiYTdmZDVhMTE2ZjY2NTk4YTFjNjNjYzIxNDJmZDVcIl0sXCJsaW5kYVwiOltcImUxMDAyZGIwODk0Mjk5YmIzNzIzOGJhYjAyMTcwMTgwYzBhZTU2ZjU5MzIxNjliYjJmY2Y3NTYwNTlmZWExNzVcIl0sXCI1NTQ3NTRmNDhiMTZkZjI0YjU1MmY2ODMyZGRhMDkwNjQyZWQ5NjU4NTU5ZmVmOWYzZWUxYmI0NjM3ZWE3Yzk0XCI6W1wiNTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NFwiXSxcIjRhN2MyMGQwODdkZjc2NzUzZTI4ZDc2NWViODRlMTMzODQ3OWRkNmRmMTIxZGRkYTNlNTk1NzZkMGEzMmE1YmZcIjpbXCI0YTdjMjBkMDg3ZGY3Njc1M2UyOGQ3NjVlYjg0ZTEzMzg0NzlkZDZkZjEyMWRkZGEzZTU5NTc2ZDBhMzJhNWJmXCJdLFwiaGVla3l1blwiOltcImRmYjE2YjEzZTQwMzJhNjg3OGZkOTg1MDZiMjJjYjBkNmU1OTMyYzU0MWU2NTZiN2VlNWQ2OWQ3MmU2ZWI3NmVcIl19LFwiY29kZVwiOlwiKGNvaW4uY29pbmJhc2UgXFxcImFuYXN0YXNpYVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbmFzdGFzaWFcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJlbWlseVxcXCIgKHJlYWQta2V5c2V0IFxcXCJlbWlseVxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImhlZWt5dW5cXFwiIChyZWFkLWtleXNldCBcXFwiaGVla3l1blxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImplZmZcXFwiIChyZWFkLWtleXNldCBcXFwiamVmZlxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImxlYWhcXFwiIChyZWFkLWtleXNldCBcXFwibGVhaFxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImxpbmRhXFxcIiAocmVhZC1rZXlzZXQgXFxcImxpbmRhXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwic3R1YXJ0XFxcIiAocmVhZC1rZXlzZXQgXFxcInN0dWFydFxcXCIpIDEwMDAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwid2lsbFxcXCIgKHJlYWQta2V5c2V0IFxcXCJ3aWxsXFxcIikgMTAwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJLYWRlbmFcXFwiIChrZXlzZXQtcmVmLWd1YXJkIFxcXCJLYWRlbmFcXFwiKSAxMDAwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6NGE3YzIwZDA4N2RmNzY3NTNlMjhkNzY1ZWI4NGUxMzM4NDc5ZGQ2ZGYxMjFkZGRhM2U1OTU3NmQwYTMyYTViZlxcXCIgKHJlYWQta2V5c2V0IFxcXCI0YTdjMjBkMDg3ZGY3Njc1M2UyOGQ3NjVlYjg0ZTEzMzg0NzlkZDZkZjEyMWRkZGEzZTU5NTc2ZDBhMzJhNWJmXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazpmYWI5MmM0N2NjYjFmZGQyNTE3M2UyOTgxZWJiMjlkZTk4OWFjZWE4ODc5MmUzNGNjODcyOThmNmExNTc4ODQyXFxcIiAocmVhZC1rZXlzZXQgXFxcImZhYjkyYzQ3Y2NiMWZkZDI1MTczZTI5ODFlYmIyOWRlOTg5YWNlYTg4NzkyZTM0Y2M4NzI5OGY2YTE1Nzg4NDJcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOmNiYjk0YjEyZjU1YmQ1NDBhNWFhNTA3NjM1MTExOTM4ZjIyODJjMjg5MWI3OGMxM2U0NjJmYTAxOGM0MTQ1ZDhcXFwiIChyZWFkLWtleXNldCBcXFwiY2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOFxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6ODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYlxcXCIgKHJlYWQta2V5c2V0IFxcXCI4OWYwYTg0MGUzYmFiNGMzMmUwN2IxNDg2MmYwYTBmNDE0NTQzZGEwMzZlY2YzMzlkM2VkN2VjOTNmYTRhNDFiXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazo0YzczNTY2YjVkOGZhNGNkMmEyNjIwZjdiMmJjNTcyODRjN2ZjNWM0OGY4ZjBkYjJiZjE2NzVjYWQwOGRjNGFmXFxcIiAocmVhZC1rZXlzZXQgXFxcIjRjNzM1NjZiNWQ4ZmE0Y2QyYTI2MjBmN2IyYmM1NzI4NGM3ZmM1YzQ4ZjhmMGRiMmJmMTY3NWNhZDA4ZGM0YWZcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOjFjODM1ZDRlNjc5MTdmZDI1NzgxYjExZGIxYzEyZWZiYzQyOTZjNWM3ZmU5ODFkMzViYmNmNGE0NmE1MzQ0MWZcXFwiIChyZWFkLWtleXNldCBcXFwiMWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZlxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6NTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NFxcXCIgKHJlYWQta2V5c2V0IFxcXCI1NTQ3NTRmNDhiMTZkZjI0YjU1MmY2ODMyZGRhMDkwNjQyZWQ5NjU4NTU5ZmVmOWYzZWUxYmI0NjM3ZWE3Yzk0XFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazozZTgzMjEzYmVkZjZiZTBhYWY4ZWQzZjhlNzJmZmI5YTI0MDkzMGI4Njk4Yjk2NDZlOGQ5MTNiNjFjOTNlNGFiXFxcIiAocmVhZC1rZXlzZXQgXFxcIjNlODMyMTNiZWRmNmJlMGFhZjhlZDNmOGU3MmZmYjlhMjQwOTMwYjg2OThiOTY0NmU4ZDkxM2I2MWM5M2U0YWJcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOjVlNGE4ZDUxZmEzOTU4MDI2Y2RkZDkzYmJkODc0ZTFiZGFlMTQ5YTEyYWM2ZjAxNTJlYTI1Mzk0MmVmYzk4OWNcXFwiIChyZWFkLWtleXNldCBcXFwiNWU0YThkNTFmYTM5NTgwMjZjZGRkOTNiYmQ4NzRlMWJkYWUxNDlhMTJhYzZmMDE1MmVhMjUzOTQyZWZjOTg5Y1xcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6MTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYVxcXCIgKHJlYWQta2V5c2V0IFxcXCIxNTRkNmYyMzk4NjRjMTljNDNlZjM3N2MwM2NjOGRmOGUwZDFlNzkyYTE0M2EwMTQyMzUwMzAyOGNlOTYzYWZhXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazo0OWI0MTAzNGFiOWJhMGI3ZmQ5MmZkNTNlYjc5ZDdmZDNkNjAxMTkxYTE1MjY5NjgyODMwZjljOTJlMzY4OGFkXFxcIiAocmVhZC1rZXlzZXQgXFxcIjQ5YjQxMDM0YWI5YmEwYjdmZDkyZmQ1M2ViNzlkN2ZkM2Q2MDExOTFhMTUyNjk2ODI4MzBmOWM5MmUzNjg4YWRcXFwiKSAxMDAwMDAwMC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwidGVzdG5ldC1ncmFudHMtTlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJ4NkpudzhheFphUktNWmFUS2ZPMDZ1czJBNGtFMERLajBGbkFURldVZVdVIiwibG9ncyI6InI1NWxHTTJGSGREVWFVc25rQmpZTWFUXzVMQWhoelAycXNzMFpvZndhMDQiLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJhbmFzdGFzaWEiLDEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJlbWlseSIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsImhlZWt5dW4iLDEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJqZWZmIiwxMDAwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwibGVhaCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsImxpbmRhIiwxMDAwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiJ4TWlRUEJSLWRqN1ZUMVJUQU03Mmt5aHR6LVYtUGN0Z3ZLc2dEUm1LVWNNIn0seyJwYXJhbXMiOlsiIiwic3R1YXJ0IiwxMDAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJ3aWxsIiwxMDAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6InhNaVFQQlItZGo3VlQxUlRBTTcya3lodHotVi1QY3RndktzZ0RSbUtVY00ifSx7InBhcmFtcyI6WyIiLCJLYWRlbmEiLDEwMDAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NGE3YzIwZDA4N2RmNzY3NTNlMjhkNzY1ZWI4NGUxMzM4NDc5ZGQ2ZGYxMjFkZGRhM2U1OTU3NmQwYTMyYTViZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6ZmFiOTJjNDdjY2IxZmRkMjUxNzNlMjk4MWViYjI5ZGU5ODlhY2VhODg3OTJlMzRjYzg3Mjk4ZjZhMTU3ODg0MiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6Y2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6ODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NGM3MzU2NmI1ZDhmYTRjZDJhMjYyMGY3YjJiYzU3Mjg0YzdmYzVjNDhmOGYwZGIyYmYxNjc1Y2FkMDhkYzRhZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6MWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6M2U4MzIxM2JlZGY2YmUwYWFmOGVkM2Y4ZTcyZmZiOWEyNDA5MzBiODY5OGI5NjQ2ZThkOTEzYjYxYzkzZTRhYiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NWU0YThkNTFmYTM5NTgwMjZjZGRkOTNiYmQ4NzRlMWJkYWUxNDlhMTJhYzZmMDE1MmVhMjUzOTQyZWZjOTg5YyIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6MTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYSIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9LHsicGFyYW1zIjpbIiIsIms6NDliNDEwMzRhYjliYTBiN2ZkOTJmZDUzZWI3OWQ3ZmQzZDYwMTE5MWExNTI2OTY4MjgzMGY5YzkyZTM2ODhhZCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoieE1pUVBCUi1kajdWVDFSVEFNNzJreWh0ei1WLVBjdGd2S3NnRFJtS1VjTSJ9XSwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6OH0") + [ (unsafeFromText "eyJoYXNoIjoiNDhUMExqQW5TRnBGV3h2dmFQVi1fNkUtQ2pEQVBoV1lVRldidnlmMmxGcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjFcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcbiAgIChkZWZ1biB0cmFuc2Zlci1jcmVhdGU6c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICApXFxuICAgICBAZG9jIFxcXCIgVHJhbnNmZXIgQU1PVU5UIGJldHdlZW4gYWNjb3VudHMgU0VOREVSIGFuZCBSRUNFSVZFUi4gXFxcXFxcbiAgICAgICAgICBcXFxcIEZhaWxzIGlmIFNFTkRFUiBkb2VzIG5vdCBleGlzdC4gSWYgUkVDRUlWRVIgZXhpc3RzLCBndWFyZCBcXFxcXFxuICAgICAgICAgIFxcXFwgbXVzdCBtYXRjaCBleGlzdGluZyB2YWx1ZS4gSWYgUkVDRUlWRVIgZG9lcyBub3QgZXhpc3QsIFxcXFxcXG4gICAgICAgICAgXFxcXCBSRUNFSVZFUiBhY2NvdW50IGlzIGNyZWF0ZWQgdXNpbmcgUkVDRUlWRVItR1VBUkQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBTdWJqZWN0IHRvIG1hbmFnZW1lbnQgYnkgVFJBTlNGRVIgY2FwYWJpbGl0eS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnBhY3QgdHJhbnNmZXItY3Jvc3NjaGFpbjpzdHJpbmdcXG4gICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIDItc3RlcCBwYWN0IHRvIHRyYW5zZmVyIEFNT1VOVCBmcm9tIFNFTkRFUiBvbiBjdXJyZW50IGNoYWluIFxcXFxcXG4gICAgICAgICAgXFxcXCB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4gdmlhIFNQViBwcm9vZi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFRBUkdFVC1DSEFJTiBtdXN0IGJlIGRpZmZlcmVudCB0aGFuIGN1cnJlbnQgY2hhaW4gaWQuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGaXJzdCBzdGVwIGRlYml0cyBBTU9VTlQgY29pbnMgaW4gU0VOREVSIGFjY291bnQgYW5kIHlpZWxkcyBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIsIFJFQ0VJVkVSX0dVQVJEIGFuZCBBTU9VTlQgdG8gVEFSR0VULUNIQUlOLiBcXFxcXFxuICAgICAgICAgIFxcXFwgU2Vjb25kIHN0ZXAgY29udGludWF0aW9uIGlzIHNlbnQgaW50byBUQVJHRVQtQ0hBSU4gd2l0aCBwcm9vZiBcXFxcXFxuICAgICAgICAgIFxcXFwgb2J0YWluZWQgZnJvbSB0aGUgc3B2ICdvdXRwdXQnIGVuZHBvaW50IG9mIENoYWlud2ViLiBcXFxcXFxuICAgICAgICAgIFxcXFwgUHJvb2YgaXMgdmFsaWRhdGVkIGFuZCBSRUNFSVZFUiBpcyBjcmVkaXRlZCB3aXRoIEFNT1VOVCBcXFxcXFxuICAgICAgICAgIFxcXFwgY3JlYXRpbmcgYWNjb3VudCB3aXRoIFJFQ0VJVkVSX0dVQVJEIGFzIG5lY2Vzc2FyeS5cXFwiXFxuICAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gYW1vdW50IDAuMCkpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHJlY2VpdmVyIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSlcXG4gICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gdGFyZ2V0LWNoYWluIFxcXCJcXFwiKSlcXG4gICAgICAgICAgICBdXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGdldC1iYWxhbmNlOmRlY2ltYWxcXG4gICAgICggYWNjb3VudDpzdHJpbmcgKVxcbiAgICAgXFxcIiBHZXQgYmFsYW5jZSBmb3IgQUNDT1VOVC4gRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2FjY291bnQtZGV0YWlsc31cXG4gICAgICggYWNjb3VudDogc3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGFuIG9iamVjdCB3aXRoIGRldGFpbHMgb2YgQUNDT1VOVC4gXFxcXFxcbiAgICAgXFxcXCBGYWlscyBpZiBhY2NvdW50IGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcHJlY2lzaW9uOmludGVnZXJcXG4gICAgICgpXFxuICAgICBcXFwiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGVjaW1hbCBwcmVjaXNpb24uXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbFxcbiAgICAgKCBhbW91bnQ6ZGVjaW1hbCApXFxuICAgICBcXFwiIEVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgdHJhbnNhY3Rpb25zLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gY3JlYXRlLWFjY291bnQ6c3RyaW5nXFxuICAgICAoIGFjY291bnQ6c3RyaW5nXFxuICAgICAgIGd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIENyZWF0ZSBBQ0NPVU5UIHdpdGggMC4wIGJhbGFuY2UsIHdpdGggR1VBUkQgY29udHJvbGxpbmcgYWNjZXNzLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gcm90YXRlOnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBuZXctZ3VhcmQ6Z3VhcmRcXG4gICAgIClcXG4gICAgIFxcXCIgUm90YXRlIGd1YXJkIGZvciBBQ0NPVU5ULiBUcmFuc2FjdGlvbiBpcyB2YWxpZGF0ZWQgYWdhaW5zdCBcXFxcXFxuICAgICBcXFxcIGV4aXN0aW5nIGd1YXJkIGJlZm9yZSBpbnN0YWxsaW5nIG5ldyBndWFyZC4gXFxcIlxcbiAgICAgKVxcblxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMtMDFcIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjEsIGhhc2ggTm1kUnRzekN3YWNqSEd5eUU5Tl9mbFFNUlJCaGNIVkZQNE9qaGlQZWoxRSJ9LCJyZXFLZXkiOiI0OFQwTGpBblNGcEZXeHZ2YVBWLV82RS1DakRBUGhXWVVGV2J2eWYybEZzIiwibG9ncyI6IlB3eDlycG9kS2prSGNPUlh2WFVRSUpjRVZRZDhPSXRNM0FlakNFRExMVXMiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjowfQ") + , (unsafeFromText "eyJoYXNoIjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxXFxuXFxuICBcXFwiIFRoaXMgaW50ZXJmYWNlIG9mZmVycyBhIHN0YW5kYXJkIGNhcGFiaWxpdHkgZm9yIGNyb3NzLWNoYWluIFxcXFxcXG4gIFxcXFwgdHJhbnNmZXJzIGFuZCBhc3NvY2lhdGVkIGV2ZW50cy4gXFxcIlxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcbiAgICBAZG9jIFxcXCIgTWFuYWdlZCBjYXBhYmlsaXR5IHNlYWxpbmcgQU1PVU5UIGZvciB0cmFuc2ZlciBcXFxcXFxuICAgICAgICAgXFxcXCBmcm9tIFNFTkRFUiB0byBSRUNFSVZFUiBvbiBUQVJHRVQtQ0hBSU4uIFBlcm1pdHMgXFxcXFxcbiAgICAgICAgIFxcXFwgYW55IG51bWJlciBvZiBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdXAgdG8gQU1PVU5ULlxcXCJcXG5cXG4gICAgQG1hbmFnZWQgYW1vdW50IFRSQU5TRkVSX1hDSEFJTi1tZ3JcXG4gICAgKVxcblxcbiAgKGRlZnVuIFRSQU5TRkVSX1hDSEFJTi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiIEFsbG93cyBUUkFOU0ZFUi1YQ0hBSU4gQU1PVU5UIHRvIGJlIGxlc3MgdGhhbiBvciBcXFxcXFxuICAgICAgICAgXFxcXCBlcXVhbCBtYW5hZ2VkIHF1YW50aXR5IGFzIGEgb25lLXNob3QsIHJldHVybmluZyAwLjAuXFxcIlxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBkb2MgXFxcIkV2ZW50IGVtaXR0ZWQgb24gcmVjZWlwdCBvZiBjcm9zcy1jaGFpbiB0cmFuc2Zlci5cXFwiXFxuICAgIEBldmVudFxcbiAgKVxcbilcXG5cIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcImdlbmVzaXMteGNoYWluXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUteGNoYWluLXYxLCBoYXNoIGg4OWljM2doejIzUmprMHBITkt0Rk93cnZTczdtYm11cWxvVlhPaGwyR0kifSwicmVxS2V5IjoieW5ucDFYVVNSTjJrMUYwYTZ2dXM3RFp0SDZjcHN6MVhmX0d3V0xnTFhTTSIsImxvZ3MiOiJSUDhnMUJrZnkyQjN1bHE0WWU4amF1VlRZcGpqRXlaLWtydGJ5SVg2STRnIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6MX0") + , (unsafeFromText "eyJoYXNoIjoiMDVCdGo3ZUJaQlc3by1TYUxvVmhBaWNNVVBaVUJiRzZRVDhfTEFrQ3hIcyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZnVuZ2libGUtdjJcXG5cXG4gIFxcXCIgU3RhbmRhcmQgZm9yIGZ1bmdpYmxlIGNvaW5zIGFuZCB0b2tlbnMgYXMgc3BlY2lmaWVkIGluIEtJUC0wMDAyLiBcXFwiXFxuXFxuICAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICAgOyBTY2hlbWFcXG5cXG4gICAoZGVmc2NoZW1hIGFjY291bnQtZGV0YWlsc1xcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHJlc3VsdHMgb2YgJ2FjY291bnQnIG9wZXJhdGlvbi5cXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKCE9IFxcXCJcXFwiIHNlbmRlcikpIF1cXG5cXG4gICAgYWNjb3VudDpzdHJpbmdcXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGd1YXJkOmd1YXJkKVxcblxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgQ2Fwc1xcblxcbiAgIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZWQgY2FwYWJpbGl0eSBzZWFsaW5nIEFNT1VOVCBmb3IgdHJhbnNmZXIgZnJvbSBTRU5ERVIgdG8gXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLiBQZXJtaXRzIGFueSBudW1iZXIgb2YgdHJhbnNmZXJzIHVwIHRvIEFNT1VOVC5cXFwiXFxuICAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVItbWdyXFxuICAgICApXFxuXFxuICAgKGRlZnVuIFRSQU5TRkVSLW1ncjpkZWNpbWFsXFxuICAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIE1hbmFnZXMgVFJBTlNGRVIgQU1PVU5UIGxpbmVhcmx5LCBcXFxcXFxuICAgICAgICAgIFxcXFwgc3VjaCB0aGF0IGEgcmVxdWVzdCBmb3IgMS4wIGFtb3VudCBvbiBhIDMuMCBcXFxcXFxuICAgICAgICAgIFxcXFwgbWFuYWdlZCBxdWFudGl0eSBlbWl0cyB1cGRhdGVkIGFtb3VudCAyLjAuXFxcIlxcbiAgICAgKVxcblxcbiAgIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgIDsgRnVuY3Rpb25hbGl0eVxcblxcblxcbiAgKGRlZnVuIHRyYW5zZmVyOnN0cmluZ1xcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2MgXFxcIiBUcmFuc2ZlciBBTU9VTlQgYmV0d2VlbiBhY2NvdW50cyBTRU5ERVIgYW5kIFJFQ0VJVkVSLiBcXFxcXFxuICAgICAgICAgXFxcXCBGYWlscyBpZiBlaXRoZXIgU0VOREVSIG9yIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICBdXFxuICAgIClcXG5cXG4gICAoZGVmdW4gdHJhbnNmZXItY3JlYXRlOnN0cmluZ1xcbiAgICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgICByZWNlaXZlci1ndWFyZDpndWFyZFxcbiAgICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgKVxcbiAgICAgQGRvYyBcXFwiIFRyYW5zZmVyIEFNT1VOVCBiZXR3ZWVuIGFjY291bnRzIFNFTkRFUiBhbmQgUkVDRUlWRVIuIFxcXFxcXG4gICAgICAgICAgXFxcXCBGYWlscyBpZiBTRU5ERVIgZG9lcyBub3QgZXhpc3QuIElmIFJFQ0VJVkVSIGV4aXN0cywgZ3VhcmQgXFxcXFxcbiAgICAgICAgICBcXFxcIG11c3QgbWF0Y2ggZXhpc3RpbmcgdmFsdWUuIElmIFJFQ0VJVkVSIGRvZXMgbm90IGV4aXN0LCBcXFxcXFxuICAgICAgICAgIFxcXFwgUkVDRUlWRVIgYWNjb3VudCBpcyBjcmVhdGVkIHVzaW5nIFJFQ0VJVkVSLUdVQVJELiBcXFxcXFxuICAgICAgICAgIFxcXFwgU3ViamVjdCB0byBtYW5hZ2VtZW50IGJ5IFRSQU5TRkVSIGNhcGFiaWxpdHkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgICAgYW1vdW50OmRlY2ltYWxcXG4gICAgIClcXG4gICAgIEBkb2MgXFxcIiAyLXN0ZXAgcGFjdCB0byB0cmFuc2ZlciBBTU9VTlQgZnJvbSBTRU5ERVIgb24gY3VycmVudCBjaGFpbiBcXFxcXFxuICAgICAgICAgIFxcXFwgdG8gUkVDRUlWRVIgb24gVEFSR0VULUNIQUlOIHZpYSBTUFYgcHJvb2YuIFxcXFxcXG4gICAgICAgICAgXFxcXCBUQVJHRVQtQ0hBSU4gbXVzdCBiZSBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IGNoYWluIGlkLiBcXFxcXFxuICAgICAgICAgIFxcXFwgRmlyc3Qgc3RlcCBkZWJpdHMgQU1PVU5UIGNvaW5zIGluIFNFTkRFUiBhY2NvdW50IGFuZCB5aWVsZHMgXFxcXFxcbiAgICAgICAgICBcXFxcIFJFQ0VJVkVSLCBSRUNFSVZFUl9HVUFSRCBhbmQgQU1PVU5UIHRvIFRBUkdFVC1DSEFJTi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFNlY29uZCBzdGVwIGNvbnRpbnVhdGlvbiBpcyBzZW50IGludG8gVEFSR0VULUNIQUlOIHdpdGggcHJvb2YgXFxcXFxcbiAgICAgICAgICBcXFxcIG9idGFpbmVkIGZyb20gdGhlIHNwdiAnb3V0cHV0JyBlbmRwb2ludCBvZiBDaGFpbndlYi4gXFxcXFxcbiAgICAgICAgICBcXFxcIFByb29mIGlzIHZhbGlkYXRlZCBhbmQgUkVDRUlWRVIgaXMgY3JlZGl0ZWQgd2l0aCBBTU9VTlQgXFxcXFxcbiAgICAgICAgICBcXFxcIGNyZWF0aW5nIGFjY291bnQgd2l0aCBSRUNFSVZFUl9HVUFSRCBhcyBuZWNlc3NhcnkuXFxcIlxcbiAgICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSBzZW5kZXIgXFxcIlxcXCIpKVxcbiAgICAgICAgICAgICAgKHByb3BlcnR5ICghPSByZWNlaXZlciBcXFwiXFxcIikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHNlbmRlciByZWNlaXZlcikpXFxuICAgICAgICAgICAgICAocHJvcGVydHkgKCE9IHRhcmdldC1jaGFpbiBcXFwiXFxcIikpXFxuICAgICAgICAgICAgXVxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBnZXQtYmFsYW5jZTpkZWNpbWFsXFxuICAgICAoIGFjY291bnQ6c3RyaW5nIClcXG4gICAgIFxcXCIgR2V0IGJhbGFuY2UgZm9yIEFDQ09VTlQuIEZhaWxzIGlmIGFjY291bnQgZG9lcyBub3QgZXhpc3QuXFxcIlxcbiAgICAgKVxcblxcbiAgIChkZWZ1biBkZXRhaWxzOm9iamVjdHthY2NvdW50LWRldGFpbHN9XFxuICAgICAoIGFjY291bnQ6IHN0cmluZyApXFxuICAgICBcXFwiIEdldCBhbiBvYmplY3Qgd2l0aCBkZXRhaWxzIG9mIEFDQ09VTlQuIFxcXFxcXG4gICAgIFxcXFwgRmFpbHMgaWYgYWNjb3VudCBkb2VzIG5vdCBleGlzdC5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHByZWNpc2lvbjppbnRlZ2VyXFxuICAgICAoKVxcbiAgICAgXFxcIlJldHVybiB0aGUgbWF4aW11bSBhbGxvd2VkIGRlY2ltYWwgcHJlY2lzaW9uLlxcXCJcXG4gICAgIClcXG5cXG4gICAoZGVmdW4gZW5mb3JjZS11bml0OmJvb2xcXG4gICAgICggYW1vdW50OmRlY2ltYWwgKVxcbiAgICAgXFxcIiBFbmZvcmNlIG1pbmltdW0gcHJlY2lzaW9uIGFsbG93ZWQgZm9yIHRyYW5zYWN0aW9ucy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIGNyZWF0ZS1hY2NvdW50OnN0cmluZ1xcbiAgICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgICBndWFyZDpndWFyZFxcbiAgICAgKVxcbiAgICAgXFxcIiBDcmVhdGUgQUNDT1VOVCB3aXRoIDAuMCBiYWxhbmNlLCB3aXRoIEdVQVJEIGNvbnRyb2xsaW5nIGFjY2Vzcy5cXFwiXFxuICAgICApXFxuXFxuICAgKGRlZnVuIHJvdGF0ZTpzdHJpbmdcXG4gICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICAgbmV3LWd1YXJkOmd1YXJkXFxuICAgICApXFxuICAgICBcXFwiIFJvdGF0ZSBndWFyZCBmb3IgQUNDT1VOVC4gVHJhbnNhY3Rpb24gaXMgdmFsaWRhdGVkIGFnYWluc3QgXFxcXFxcbiAgICAgXFxcXCBleGlzdGluZyBndWFyZCBiZWZvcmUgaW5zdGFsbGluZyBuZXcgZ3VhcmQuIFxcXCJcXG4gICAgIClcXG5cXG4pXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJmdW5naWJsZS1hc3NldC12MlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZnVuZ2libGUtdjIsIGhhc2ggWXhFLUtnQzZKbUttQ2NnS1RKbWxFbl9JNThJNEVYbWhmcnZ6WDdiZXJZayJ9LCJyZXFLZXkiOiIwNUJ0ajdlQlpCVzdvLVNhTG9WaEFpY01VUFpVQmJHNlFUOF9MQWtDeEhzIiwibG9ncyI6IjFTQmJBNHVzS0E5OFNlX09WRUdkcVk5WjJoSW1jVmcydWpISDJkM1ZmeEkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjoyfQ") + , (unsafeFromText "eyJoYXNoIjoiR1JJUXU0aEFLazBJRDlGOHpfLTB5WHlBS0ozM01QeVRZTVhPamxQSm1wSSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIlxcbihtb2R1bGUgY29pbiBHT1ZFUk5BTkNFXFxuXFxuICBAZG9jIFxcXCInY29pbicgcmVwcmVzZW50cyB0aGUgS2FkZW5hIENvaW4gQ29udHJhY3QuIFRoaXMgY29udHJhY3QgcHJvdmlkZXMgYm90aCB0aGUgXFxcXFxcbiAgXFxcXGJ1eS9yZWRlZW0gZ2FzIHN1cHBvcnQgaW4gdGhlIGZvcm0gb2YgJ2Z1bmQtdHgnLCBhcyB3ZWxsIGFzIHRyYW5zZmVyLCAgICAgICBcXFxcXFxuICBcXFxcY3JlZGl0LCBkZWJpdCwgY29pbmJhc2UsIGFjY291bnQgY3JlYXRpb24gYW5kIHF1ZXJ5LCBhcyB3ZWxsIGFzIFNQViBidXJuICAgIFxcXFxcXG4gIFxcXFxjcmVhdGUuIFRvIGFjY2VzcyB0aGUgY29pbiBjb250cmFjdCwgeW91IG1heSB1c2UgaXRzIGZ1bGx5LXF1YWxpZmllZCBuYW1lLCAgXFxcXFxcbiAgXFxcXG9yIGlzc3VlIHRoZSAnKHVzZSBjb2luKScgY29tbWFuZCBpbiB0aGUgYm9keSBvZiBhIG1vZHVsZSBkZWNsYXJhdGlvbi5cXFwiXFxuXFxuICBAbW9kZWxcXG4gICAgWyAoZGVmcHJvcGVydHkgY29uc2VydmVzLW1hc3NcXG4gICAgICAgICg9IChjb2x1bW4tZGVsdGEgY29pbi10YWJsZSAnYmFsYW5jZSkgMC4wKSlcXG5cXG4gICAgICAoZGVmcHJvcGVydHkgdmFsaWQtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICAgICAoYW5kXFxuICAgICAgICAgICg-PSAobGVuZ3RoIGFjY291bnQpIDMpXFxuICAgICAgICAgICg8PSAobGVuZ3RoIGFjY291bnQpIDI1NikpKVxcbiAgICBdXFxuXFxuICAoaW1wbGVtZW50cyBmdW5naWJsZS12MilcXG4gIChpbXBsZW1lbnRzIGZ1bmdpYmxlLXhjaGFpbi12MSlcXG5cXG4gIDs7IGNvaW4tdjJcXG4gIChibGVzcyBcXFwidXRfSl9aTmtveWFQVUVKaGl3VmVXbmtTUW45SlQ5c1FDV0tkampWVnJXb1xcXCIpXFxuXFxuICA7OyBjb2luIHYzXFxuICAoYmxlc3MgXFxcIjFvc19zTEFVWXZCenNwbjVqamF3dFJwSldpSDFXUGZoeU5yYWVWdlNJd1VcXFwiKVxcblxcbiAgOzsgY29pbiB2NFxcbiAgKGJsZXNzIFxcXCJCalpXMFQyYWM2cUVfSTVYOEdFNGZhbDZ0VHFqaExUQzdteTB5dFFTeExVXFxcIilcXG5cXG4gIDs7IGNvaW4gdjVcXG4gIChibGVzcyBcXFwickU3RFU4amxRTDl4X01QWXVuaVpKZjVJQ0JUQUVIQUlGUUNCNGJsb2ZQNFxcXCIpXFxuXFxuICA7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuICA7IFNjaGVtYXMgYW5kIFRhYmxlc1xcblxcbiAgKGRlZnNjaGVtYSBjb2luLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJUaGUgY29pbiBjb250cmFjdCB0b2tlbiBzY2hlbWFcXFwiXFxuICAgIEBtb2RlbCBbIChpbnZhcmlhbnQgKD49IGJhbGFuY2UgMC4wKSkgXVxcblxcbiAgICBiYWxhbmNlOmRlY2ltYWxcXG4gICAgZ3VhcmQ6Z3VhcmQpXFxuXFxuICAoZGVmdGFibGUgY29pbi10YWJsZTp7Y29pbi1zY2hlbWF9KVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDYXBhYmlsaXRpZXNcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZSBmYWxzZSBcXFwiRW5mb3JjZSBub24tdXBncmFkZWFiaWxpdHlcXFwiKSlcXG5cXG4gIChkZWZjYXAgR0FTICgpXFxuICAgIFxcXCJNYWdpYyBjYXBhYmlsaXR5IHRvIHByb3RlY3QgZ2FzIGJ1eSBhbmQgcmVkZWVtXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBDT0lOQkFTRSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSB0byBwcm90ZWN0IG1pbmVyIHJld2FyZFxcXCJcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgR0VORVNJUyAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBjb25zdHJhaW5pbmcgZ2VuZXNpcyB0cmFuc2FjdGlvbnNcXFwiXFxuICAgIHRydWUpXFxuXFxuICAoZGVmY2FwIFJFTUVESUFURSAoKVxcbiAgICBcXFwiTWFnaWMgY2FwYWJpbGl0eSBmb3IgcmVtZWRpYXRpb24gdHJhbnNhY3Rpb25zXFxcIlxcbiAgICB0cnVlKVxcblxcbiAgKGRlZmNhcCBERUJJVCAoc2VuZGVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGRlYml0aW5nIG9wZXJhdGlvbnNcXFwiXFxuICAgIChlbmZvcmNlLWd1YXJkIChhdCAnZ3VhcmQgKHJlYWQgY29pbi10YWJsZSBzZW5kZXIpKSlcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciBcXFwiXFxcIikgXFxcInZhbGlkIHNlbmRlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBDUkVESVQgKHJlY2VpdmVyOnN0cmluZylcXG4gICAgXFxcIkNhcGFiaWxpdHkgZm9yIG1hbmFnaW5nIGNyZWRpdGluZyBvcGVyYXRpb25zXFxcIlxcbiAgICAoZW5mb3JjZSAoIT0gcmVjZWl2ZXIgXFxcIlxcXCIpIFxcXCJ2YWxpZCByZWNlaXZlclxcXCIpKVxcblxcbiAgKGRlZmNhcCBST1RBVEUgKGFjY291bnQ6c3RyaW5nKVxcbiAgICBAZG9jIFxcXCJBdXRvbm9tb3VzbHkgbWFuYWdlZCBjYXBhYmlsaXR5IGZvciBndWFyZCByb3RhdGlvblxcXCJcXG4gICAgQG1hbmFnZWRcXG4gICAgdHJ1ZSlcXG5cXG4gIChkZWZjYXAgVFJBTlNGRVI6Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBtYW5hZ2VkIGFtb3VudCBUUkFOU0ZFUi1tZ3JcXG4gICAgKGVuZm9yY2UgKCE9IHNlbmRlciByZWNlaXZlcikgXFxcInNhbWUgc2VuZGVyIGFuZCByZWNlaXZlclxcXCIpXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiUG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoQ1JFRElUIHJlY2VpdmVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUi1tZ3I6ZGVjaW1hbFxcbiAgICAoIG1hbmFnZWQ6ZGVjaW1hbFxcbiAgICAgIHJlcXVlc3RlZDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgKGxldCAoKG5ld2JhbCAoLSBtYW5hZ2VkIHJlcXVlc3RlZCkpKVxcbiAgICAgIChlbmZvcmNlICg-PSBuZXdiYWwgMC4wKVxcbiAgICAgICAgKGZvcm1hdCBcXFwiVFJBTlNGRVIgZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgICAgbmV3YmFsKVxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU46Ym9vbFxcbiAgICAoIHNlbmRlcjpzdHJpbmdcXG4gICAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgICBhbW91bnQ6ZGVjaW1hbFxcbiAgICAgIHRhcmdldC1jaGFpbjpzdHJpbmdcXG4gICAgKVxcblxcbiAgICBAbWFuYWdlZCBhbW91bnQgVFJBTlNGRVJfWENIQUlOLW1nclxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMCkgXFxcIkNyb3NzLWNoYWluIHRyYW5zZmVycyByZXF1aXJlIGEgcG9zaXRpdmUgYW1vdW50XFxcIilcXG4gICAgKGNvbXBvc2UtY2FwYWJpbGl0eSAoREVCSVQgc2VuZGVyKSlcXG4gIClcXG5cXG4gIChkZWZ1biBUUkFOU0ZFUl9YQ0hBSU4tbWdyOmRlY2ltYWxcXG4gICAgKCBtYW5hZ2VkOmRlY2ltYWxcXG4gICAgICByZXF1ZXN0ZWQ6ZGVjaW1hbFxcbiAgICApXFxuXFxuICAgIChlbmZvcmNlICg-PSBtYW5hZ2VkIHJlcXVlc3RlZClcXG4gICAgICAoZm9ybWF0IFxcXCJUUkFOU0ZFUl9YQ0hBSU4gZXhjZWVkZWQgZm9yIGJhbGFuY2Uge31cXFwiIFttYW5hZ2VkXSkpXFxuICAgIDAuMFxcbiAgKVxcblxcbiAgKGRlZmNhcCBUUkFOU0ZFUl9YQ0hBSU5fUkVDRDpib29sXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgICAgc291cmNlLWNoYWluOnN0cmluZ1xcbiAgICApXFxuICAgIEBldmVudCB0cnVlXFxuICApXFxuXFxuICA7IHYzIGNhcGFiaWxpdGllc1xcbiAgKGRlZmNhcCBSRUxFQVNFX0FMTE9DQVRJT05cXG4gICAgKCBhY2NvdW50OnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG4gICAgQGRvYyBcXFwiRXZlbnQgZm9yIGFsbG9jYXRpb24gcmVsZWFzZSwgY2FuIGJlIHVzZWQgZm9yIHNpZyBzY29waW5nLlxcXCJcXG4gICAgQGV2ZW50IHRydWVcXG4gIClcXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29uc3RhbnRzXFxuXFxuICAoZGVmY29uc3QgQ09JTl9DSEFSU0VUIENIQVJTRVRfTEFUSU4xXFxuICAgIFxcXCJUaGUgZGVmYXVsdCBjb2luIGNvbnRyYWN0IGNoYXJhY3RlciBzZXRcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1JTklNVU1fUFJFQ0lTSU9OIDEyXFxuICAgIFxcXCJNaW5pbXVtIGFsbG93ZWQgcHJlY2lzaW9uIGZvciBjb2luIHRyYW5zYWN0aW9uc1xcXCIpXFxuXFxuICAoZGVmY29uc3QgTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSCAzXFxuICAgIFxcXCJNaW5pbXVtIGFjY291bnQgbGVuZ3RoIGFkbWlzc2libGUgZm9yIGNvaW4gYWNjb3VudHNcXFwiKVxcblxcbiAgKGRlZmNvbnN0IE1BWElNVU1fQUNDT1VOVF9MRU5HVEggMjU2XFxuICAgIFxcXCJNYXhpbXVtIGFjY291bnQgbmFtZSBsZW5ndGggYWRtaXNzaWJsZSBmb3IgY29pbiBhY2NvdW50c1xcXCIpXFxuXFxuICAoZGVmY29uc3QgVkFMSURfQ0hBSU5fSURTIChtYXAgKGludC10by1zdHIgMTApIChlbnVtZXJhdGUgMCAxOSkpXFxuICAgIFxcXCJMaXN0IG9mIGFsbCB2YWxpZCBDaGFpbndlYiBjaGFpbiBpZHNcXFwiKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBVdGlsaXRpZXNcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXVuaXQ6Ym9vbCAoYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgbWluaW11bSBwcmVjaXNpb24gYWxsb3dlZCBmb3IgY29pbiB0cmFuc2FjdGlvbnNcXFwiXFxuXFxuICAgIChlbmZvcmNlXFxuICAgICAgKD0gKGZsb29yIGFtb3VudCBNSU5JTVVNX1BSRUNJU0lPTilcXG4gICAgICAgICBhbW91bnQpXFxuICAgICAgKGZvcm1hdCBcXFwiQW1vdW50IHZpb2xhdGVzIG1pbmltdW0gcHJlY2lzaW9uOiB7fVxcXCIgW2Ftb3VudF0pKVxcbiAgICApXFxuXFxuICAoZGVmdW4gdmFsaWRhdGUtYWNjb3VudCAoYWNjb3VudDpzdHJpbmcpXFxuICAgIEBkb2MgXFxcIkVuZm9yY2UgdGhhdCBhbiBhY2NvdW50IG5hbWUgY29uZm9ybXMgdG8gdGhlIGNvaW4gY29udHJhY3QgXFxcXFxcbiAgICAgICAgIFxcXFxtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudHMsIGFzIHdlbGwgYXMgdGhlICAgIFxcXFxcXG4gICAgICAgICBcXFxcbGF0aW4tMSBjaGFyYWN0ZXIgc2V0LlxcXCJcXG5cXG4gICAgKGVuZm9yY2VcXG4gICAgICAoaXMtY2hhcnNldCBDT0lOX0NIQVJTRVQgYWNjb3VudClcXG4gICAgICAoZm9ybWF0XFxuICAgICAgICBcXFwiQWNjb3VudCBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBjb2luIGNvbnRyYWN0IGNoYXJzZXQ6IHt9XFxcIlxcbiAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgKGxldCAoKGFjY291bnQtbGVuZ3RoIChsZW5ndGggYWNjb3VudCkpKVxcblxcbiAgICAgIChlbmZvcmNlXFxuICAgICAgICAoPj0gYWNjb3VudC1sZW5ndGggTUlOSU1VTV9BQ0NPVU5UX0xFTkdUSClcXG4gICAgICAgIChmb3JtYXRcXG4gICAgICAgICAgXFxcIkFjY291bnQgbmFtZSBkb2VzIG5vdCBjb25mb3JtIHRvIHRoZSBtaW4gbGVuZ3RoIHJlcXVpcmVtZW50OiB7fVxcXCJcXG4gICAgICAgICAgW2FjY291bnRdKSlcXG5cXG4gICAgICAoZW5mb3JjZVxcbiAgICAgICAgKDw9IGFjY291bnQtbGVuZ3RoIE1BWElNVU1fQUNDT1VOVF9MRU5HVEgpXFxuICAgICAgICAoZm9ybWF0XFxuICAgICAgICAgIFxcXCJBY2NvdW50IG5hbWUgZG9lcyBub3QgY29uZm9ybSB0byB0aGUgbWF4IGxlbmd0aCByZXF1aXJlbWVudDoge31cXFwiXFxuICAgICAgICAgIFthY2NvdW50XSkpXFxuICAgICAgKVxcbiAgKVxcblxcbiAgOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiAgOyBDb2luIENvbnRyYWN0XFxuXFxuICAoZGVmdW4gZ2FzLW9ubHkgKClcXG4gICAgXFxcIlByZWRpY2F0ZSBmb3IgZ2FzLW9ubHkgdXNlciBndWFyZHMuXFxcIlxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKSlcXG5cXG4gIChkZWZ1biBnYXMtZ3VhcmQgKGd1YXJkOmd1YXJkKVxcbiAgICBcXFwiUHJlZGljYXRlIGZvciBnYXMgKyBzaW5nbGUga2V5IHVzZXIgZ3VhcmRzXFxcIlxcbiAgICAoZW5mb3JjZS1vbmVcXG4gICAgICBcXFwiRW5mb3JjZSBlaXRoZXIgdGhlIHByZXNlbmNlIG9mIGEgR0FTIGNhcCBvciBrZXlzZXRcXFwiXFxuICAgICAgWyAoZ2FzLW9ubHkpXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG4gICAgICBdKSlcXG5cXG4gIChkZWZ1biBidXktZ2FzOnN0cmluZyAoc2VuZGVyOnN0cmluZyB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJUaGlzIGZ1bmN0aW9uIGRlc2NyaWJlcyB0aGUgbWFpbiAnZ2FzIGJ1eScgb3BlcmF0aW9uLiBBdCB0aGlzIHBvaW50IFxcXFxcXG4gICAgXFxcXE1JTkVSIGhhcyBiZWVuIGNob3NlbiBmcm9tIHRoZSBwb29sLCBhbmQgd2lsbCBiZSB2YWxpZGF0ZWQuIFRoZSBTRU5ERVIgICBcXFxcXFxuICAgIFxcXFxvZiB0aGlzIHRyYW5zYWN0aW9uIGhhcyBzcGVjaWZpZWQgYSBnYXMgbGltaXQgTElNSVQgKG1heGltdW0gZ2FzKSBmb3IgICAgXFxcXFxcbiAgICBcXFxcdGhlIHRyYW5zYWN0aW9uLCBhbmQgdGhlIHByaWNlIGlzIHRoZSBzcG90IHByaWNlIG9mIGdhcyBhdCB0aGF0IHRpbWUuICAgIFxcXFxcXG4gICAgXFxcXFRoZSBnYXMgYnV5IHdpbGwgYmUgZXhlY3V0ZWQgcHJpb3IgdG8gZXhlY3V0aW5nIFNFTkRFUidzIGNvZGUuXFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCB0b3RhbClcXG4gICAgKGVuZm9yY2UgKD4gdG90YWwgMC4wKSBcXFwiZ2FzIHN1cHBseSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChHQVMpKVxcbiAgICAod2l0aC1jYXBhYmlsaXR5IChERUJJVCBzZW5kZXIpXFxuICAgICAgKGRlYml0IHNlbmRlciB0b3RhbCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biByZWRlZW0tZ2FzOnN0cmluZyAobWluZXI6c3RyaW5nIG1pbmVyLWd1YXJkOmd1YXJkIHNlbmRlcjpzdHJpbmcgdG90YWw6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIG1haW4gJ3JlZGVlbSBnYXMnIG9wZXJhdGlvbi4gQXQgdGhpcyAgICBcXFxcXFxuICAgIFxcXFxwb2ludCwgdGhlIFNFTkRFUidzIHRyYW5zYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkLCBhbmQgdGhlIGdhcyB0aGF0ICAgICAgXFxcXFxcbiAgICBcXFxcd2FzIGNoYXJnZWQgaGFzIGJlZW4gY2FsY3VsYXRlZC4gTUlORVIgd2lsbCBiZSBjcmVkaXRlZCB0aGUgZ2FzIGNvc3QsICAgIFxcXFxcXG4gICAgXFxcXGFuZCBTRU5ERVIgd2lsbCByZWNlaXZlIHRoZSByZW1haW5kZXIgdXAgdG8gdGhlIGxpbWl0XFxcIlxcblxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKD4gdG90YWwgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBtaW5lcikpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IHNlbmRlcilcXG4gICAgKHZhbGlkYXRlLWFjY291bnQgbWluZXIpXFxuICAgIChlbmZvcmNlLXVuaXQgdG90YWwpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdBUykpXFxuICAgIChsZXQqXFxuICAgICAgKChmZWUgKHJlYWQtZGVjaW1hbCBcXFwiZmVlXFxcIikpXFxuICAgICAgIChyZWZ1bmQgKC0gdG90YWwgZmVlKSkpXFxuXFxuICAgICAgKGVuZm9yY2UtdW5pdCBmZWUpXFxuICAgICAgKGVuZm9yY2UgKD49IGZlZSAwLjApXFxuICAgICAgICBcXFwiZmVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgcXVhbnRpdHlcXFwiKVxcblxcbiAgICAgIChlbmZvcmNlICg-PSByZWZ1bmQgMC4wKVxcbiAgICAgICAgXFxcInJlZnVuZCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHF1YW50aXR5XFxcIilcXG5cXG4gICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgc2VuZGVyIG1pbmVyIGZlZSkpIDt2M1xcblxcbiAgICAgICAgOyBkaXJlY3RseSB1cGRhdGUgaW5zdGVhZCBvZiBjcmVkaXRcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgc2VuZGVyKVxcbiAgICAgICAgKGlmICg-IHJlZnVuZCAwLjApXFxuICAgICAgICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBzZW5kZXJcXG4gICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG4gICAgICAgICAgICAodXBkYXRlIGNvaW4tdGFibGUgc2VuZGVyXFxuICAgICAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIjogKCsgYmFsYW5jZSByZWZ1bmQpIH0pKVxcblxcbiAgICAgICAgICBcXFwibm9vcFxcXCIpKVxcblxcbiAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBtaW5lcilcXG4gICAgICAgIChpZiAoPiBmZWUgMC4wKVxcbiAgICAgICAgICAoY3JlZGl0IG1pbmVyIG1pbmVyLWd1YXJkIGZlZSlcXG4gICAgICAgICAgXFxcIm5vb3BcXFwiKSlcXG4gICAgICApXFxuXFxuICAgIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWNjb3VudDpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpIF1cXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgYWNjb3VudClcXG4gICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG5cXG4gICAgKGluc2VydCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IDAuMFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiAgIDogZ3VhcmRcXG4gICAgICB9KVxcbiAgICApXFxuXFxuICAoZGVmdW4gZ2V0LWJhbGFuY2U6ZGVjaW1hbCAoYWNjb3VudDpzdHJpbmcpXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZSB9XFxuICAgICAgYmFsYW5jZVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRldGFpbHM6b2JqZWN0e2Z1bmdpYmxlLXYyLmFjY291bnQtZGV0YWlsc31cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuICAgICh3aXRoLXJlYWQgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiIDo9IGcgfVxcbiAgICAgIHsgXFxcImFjY291bnRcXFwiIDogYWNjb3VudFxcbiAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogYmFsXFxuICAgICAgLCBcXFwiZ3VhcmRcXFwiOiBnIH0pXFxuICAgIClcXG5cXG4gIChkZWZ1biByb3RhdGU6c3RyaW5nIChhY2NvdW50OnN0cmluZyBuZXctZ3VhcmQ6Z3VhcmQpXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKFJPVEFURSBhY2NvdW50KVxcblxcbiAgICAgIDsgQWxsb3cgcm90YXRpb24gb25seSBmb3IgdmFuaXR5IGFjY291bnRzLCBvclxcbiAgICAgIDsgcmUtcm90YXRpbmcgYSBwcmluY2lwYWwgYWNjb3VudCBiYWNrIHRvIGl0cyBwcm9wZXIgZ3VhcmRcXG4gICAgICAoZW5mb3JjZSAob3IgKG5vdCAoaXMtcHJpbmNpcGFsIGFjY291bnQpKVxcbiAgICAgICAgICAgICAgICAgICh2YWxpZGF0ZS1wcmluY2lwYWwgbmV3LWd1YXJkIGFjY291bnQpKVxcbiAgICAgICAgXFxcIkl0IGlzIHVuc2FmZSBmb3IgcHJpbmNpcGFsIGFjY291bnRzIHRvIHJvdGF0ZSB0aGVpciBndWFyZFxcXCIpXFxuXFxuICAgICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBvbGQtZ3VhcmQgfVxcbiAgICAgICAgKGVuZm9yY2UtZ3VhcmQgb2xkLWd1YXJkKVxcbiAgICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgICAgeyBcXFwiZ3VhcmRcXFwiIDogbmV3LWd1YXJkIH1cXG4gICAgICAgICAgKSkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBwcmVjaXNpb246aW50ZWdlclxcbiAgICAoKVxcbiAgICBNSU5JTVVNX1BSRUNJU0lPTilcXG5cXG4gIChkZWZ1biB0cmFuc2ZlcjpzdHJpbmcgKHNlbmRlcjpzdHJpbmcgcmVjZWl2ZXI6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAbW9kZWwgWyAocHJvcGVydHkgY29uc2VydmVzLW1hc3MpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHNlbmRlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCByZWNlaXZlcikpXFxuICAgICAgICAgICAgIChwcm9wZXJ0eSAoIT0gc2VuZGVyIHJlY2VpdmVyKSkgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgcmVjZWl2ZXJcXG4gICAgICAgIHsgXFxcImd1YXJkXFxcIiA6PSBnIH1cXG5cXG4gICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgZyBhbW91bnQpKVxcbiAgICAgIClcXG4gICAgKVxcblxcbiAgKGRlZnVuIHRyYW5zZmVyLWNyZWF0ZTpzdHJpbmdcXG4gICAgKCBzZW5kZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXI6c3RyaW5nXFxuICAgICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgICBhbW91bnQ6ZGVjaW1hbCApXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgXVxcblxcbiAgICAoZW5mb3JjZSAoIT0gc2VuZGVyIHJlY2VpdmVyKVxcbiAgICAgIFxcXCJzZW5kZXIgY2Fubm90IGJlIHRoZSByZWNlaXZlciBvZiBhIHRyYW5zZmVyXFxcIilcXG5cXG4gICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAodmFsaWRhdGUtYWNjb3VudCByZWNlaXZlcilcXG5cXG4gICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICBcXFwidHJhbnNmZXIgYW1vdW50IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoVFJBTlNGRVIgc2VuZGVyIHJlY2VpdmVyIGFtb3VudClcXG4gICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAoY3JlZGl0IHJlY2VpdmVyIHJlY2VpdmVyLWd1YXJkIGFtb3VudCkpXFxuICAgIClcXG5cXG4gIChkZWZ1biBjb2luYmFzZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFjY291bnQtZ3VhcmQ6Z3VhcmQgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkludGVybmFsIGZ1bmN0aW9uIGZvciB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZiBjb2lucy4gIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICBcXFxcY2Fubm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGUgY29pbiBjb250cmFjdC5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKHJlcXVpcmUtY2FwYWJpbGl0eSAoQ09JTkJBU0UpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtY2FwYWJpbGl0eSAoQ1JFRElUIGFjY291bnQpXFxuICAgICAgKGNyZWRpdCBhY2NvdW50IGFjY291bnQtZ3VhcmQgYW1vdW50KSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIHJlbWVkaWF0ZTpzdHJpbmcgKGFjY291bnQ6c3RyaW5nIGFtb3VudDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCJBbGxvd3MgZm9yIHJlbWVkaWF0aW9uIHRyYW5zYWN0aW9ucy4gVGhpcyBmdW5jdGlvbiBcXFxcXFxuICAgICAgICAgXFxcXGlzIHByb3RlY3RlZCBieSB0aGUgUkVNRURJQVRFIGNhcGFiaWxpdHlcXFwiXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAodmFsaWQtYWNjb3VudCBhY2NvdW50KSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKVxcbiAgICAgIFxcXCJSZW1lZGlhdGlvbiBhbW91bnQgbXVzdCBiZSBwb3NpdGl2ZVxcXCIpXFxuXFxuICAgIChlbmZvcmNlLXVuaXQgYW1vdW50KVxcblxcbiAgICAocmVxdWlyZS1jYXBhYmlsaXR5IChSRU1FRElBVEUpKVxcbiAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBhbW91bnQpKSA7djNcXG4gICAgKHdpdGgtcmVhZCBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlIH1cXG5cXG4gICAgICAoZW5mb3JjZSAoPD0gYW1vdW50IGJhbGFuY2UpIFxcXCJJbnN1ZmZpY2llbnQgZnVuZHNcXFwiKVxcblxcbiAgICAgICh1cGRhdGUgY29pbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6ICgtIGJhbGFuY2UgYW1vdW50KSB9XFxuICAgICAgICApKVxcbiAgICApXFxuXFxuICAoZGVmcGFjdCBmdW5kLXR4IChzZW5kZXI6c3RyaW5nIG1pbmVyOnN0cmluZyBtaW5lci1ndWFyZDpndWFyZCB0b3RhbDpkZWNpbWFsKVxcbiAgICBAZG9jIFxcXCInZnVuZC10eCcgaXMgYSBzcGVjaWFsIHBhY3QgdG8gZnVuZCBhIHRyYW5zYWN0aW9uIGluIHR3byBzdGVwcywgICAgIFxcXFxcXG4gICAgXFxcXHdpdGggdGhlIGFjdHVhbCB0cmFuc2FjdGlvbiB0cmFuc3BpcmluZyBpbiB0aGUgbWlkZGxlOiAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbiAgICBcXFxcICAxKSBBIGJ1eWluZyBwaGFzZSwgZGViaXRpbmcgdGhlIHNlbmRlciBmb3IgdG90YWwgZ2FzIGFuZCBmZWUsIHlpZWxkaW5nIFxcXFxcXG4gICAgXFxcXCAgICAgVFhfTUFYX0NIQVJHRS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuICAgIFxcXFwgIDIpIEEgc2V0dGxlbWVudCBwaGFzZSwgcmVzdW1pbmcgVFhfTUFYX0NIQVJHRSwgYW5kIGFsbG9jYXRpbmcgdG8gdGhlICAgXFxcXFxcbiAgICBcXFxcICAgICBjb2luYmFzZSBhY2NvdW50IGZvciB1c2VkIGdhcyBhbmQgZmVlLCBhbmQgc2VuZGVyIGFjY291bnQgZm9yIGJhbC0gIFxcXFxcXG4gICAgXFxcXCAgICAgYW5jZSAodW51c2VkIGdhcywgaWYgYW55KS5cXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiB0b3RhbCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IG1pbmVyKSlcXG4gICAgICAgICAgICAgOyhwcm9wZXJ0eSBjb25zZXJ2ZXMtbWFzcykgbm90IHN1cHBvcnRlZCB5ZXRcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXAgKGJ1eS1nYXMgc2VuZGVyIHRvdGFsKSlcXG4gICAgKHN0ZXAgKHJlZGVlbS1nYXMgbWluZXIgbWluZXItZ3VhcmQgc2VuZGVyIHRvdGFsKSlcXG4gICAgKVxcblxcbiAgKGRlZnVuIGRlYml0OnN0cmluZyAoYWNjb3VudDpzdHJpbmcgYW1vdW50OmRlY2ltYWwpXFxuICAgIEBkb2MgXFxcIkRlYml0IEFNT1VOVCBmcm9tIEFDQ09VTlQgYmFsYW5jZVxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgYWNjb3VudCkpXFxuICAgICAgICAgICBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgIChlbmZvcmNlICg-IGFtb3VudCAwLjApXFxuICAgICAgXFxcImRlYml0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG5cXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKERFQklUIGFjY291bnQpKVxcbiAgICAod2l0aC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDo9IGJhbGFuY2UgfVxcblxcbiAgICAgIChlbmZvcmNlICg8PSBhbW91bnQgYmFsYW5jZSkgXFxcIkluc3VmZmljaWVudCBmdW5kc1xcXCIpXFxuXFxuICAgICAgKHVwZGF0ZSBjb2luLXRhYmxlIGFjY291bnRcXG4gICAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogKC0gYmFsYW5jZSBhbW91bnQpIH1cXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIChkZWZ1biBjcmVkaXQ6c3RyaW5nIChhY2NvdW50OnN0cmluZyBndWFyZDpndWFyZCBhbW91bnQ6ZGVjaW1hbClcXG4gICAgQGRvYyBcXFwiQ3JlZGl0IEFNT1VOVCB0byBBQ0NPVU5UIGJhbGFuY2VcXFwiXFxuXFxuICAgIEBtb2RlbCBbIChwcm9wZXJ0eSAoPiBhbW91bnQgMC4wKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKVxcbiAgICAgICAgICAgXVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcblxcbiAgICAoZW5mb3JjZSAoPiBhbW91bnQgMC4wKSBcXFwiY3JlZGl0IGFtb3VudCBtdXN0IGJlIHBvc2l0aXZlXFxcIilcXG4gICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KSlcXG4gICAgKHdpdGgtZGVmYXVsdC1yZWFkIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgIHsgXFxcImJhbGFuY2VcXFwiIDogLTEuMCwgXFxcImd1YXJkXFxcIiA6IGd1YXJkIH1cXG4gICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6PSBiYWxhbmNlLCBcXFwiZ3VhcmRcXFwiIDo9IHJldGcgfVxcbiAgICAgIDsgd2UgZG9uJ3Qgd2FudCB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZ3VhcmQgd2l0aCB0aGUgdXNlci1zdXBwbGllZCBvbmVcXG4gICAgICAoZW5mb3JjZSAoPSByZXRnIGd1YXJkKVxcbiAgICAgICAgXFxcImFjY291bnQgZ3VhcmRzIGRvIG5vdCBtYXRjaFxcXCIpXFxuXFxuICAgICAgKGxldCAoKGlzLW5ld1xcbiAgICAgICAgICAgICAoaWYgKD0gYmFsYW5jZSAtMS4wKVxcbiAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVzZXJ2ZWQgYWNjb3VudCBndWFyZClcXG4gICAgICAgICAgICAgICBmYWxzZSkpKVxcblxcbiAgICAgICAgKHdyaXRlIGNvaW4tdGFibGUgYWNjb3VudFxcbiAgICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IChpZiBpcy1uZXcgYW1vdW50ICgrIGJhbGFuY2UgYW1vdW50KSlcXG4gICAgICAgICAgLCBcXFwiZ3VhcmRcXFwiICAgOiByZXRnXFxuICAgICAgICAgIH0pKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gY2hlY2stcmVzZXJ2ZWQ6c3RyaW5nIChhY2NvdW50OnN0cmluZylcXG4gICAgXFxcIiBDaGVja3MgQUNDT1VOVCBmb3IgcmVzZXJ2ZWQgbmFtZSBhbmQgcmV0dXJucyB0eXBlIGlmIFxcXFxcXG4gICAgXFxcXCBmb3VuZCBvciBlbXB0eSBzdHJpbmcuIFJlc2VydmVkIG5hbWVzIHN0YXJ0IHdpdGggYSBcXFxcXFxuICAgIFxcXFwgc2luZ2xlIGNoYXIgYW5kIGNvbG9uLCBlLmcuICdjOmZvbycsIHdoaWNoIHdvdWxkIHJldHVybiAnYycgYXMgdHlwZS5cXFwiXFxuICAgIChsZXQgKChwZnggKHRha2UgMiBhY2NvdW50KSkpXFxuICAgICAgKGlmICg9IFxcXCI6XFxcIiAodGFrZSAtMSBwZngpKSAodGFrZSAxIHBmeCkgXFxcIlxcXCIpKSlcXG5cXG4gIChkZWZ1biBlbmZvcmNlLXJlc2VydmVkOmJvb2wgKGFjY291bnQ6c3RyaW5nIGd1YXJkOmd1YXJkKVxcbiAgICBAZG9jIFxcXCJFbmZvcmNlIHJlc2VydmVkIGFjY291bnQgbmFtZSBwcm90b2NvbHMuXFxcIlxcbiAgICAoaWYgKHZhbGlkYXRlLXByaW5jaXBhbCBndWFyZCBhY2NvdW50KVxcbiAgICAgIHRydWVcXG4gICAgICAobGV0ICgociAoY2hlY2stcmVzZXJ2ZWQgYWNjb3VudCkpKVxcbiAgICAgICAgKGlmICg9IHIgXFxcIlxcXCIpXFxuICAgICAgICAgIHRydWVcXG4gICAgICAgICAgKGlmICg9IHIgXFxcImtcXFwiKVxcbiAgICAgICAgICAgIChlbmZvcmNlIGZhbHNlIFxcXCJTaW5nbGUta2V5IGFjY291bnQgcHJvdG9jb2wgdmlvbGF0aW9uXFxcIilcXG4gICAgICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAgICAgKGZvcm1hdCBcXFwiUmVzZXJ2ZWQgcHJvdG9jb2wgZ3VhcmQgdmlvbGF0aW9uOiB7fVxcXCIgW3JdKSlcXG4gICAgICAgICAgICApKSkpKVxcblxcblxcbiAgKGRlZnNjaGVtYSBjcm9zc2NoYWluLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJTY2hlbWEgZm9yIHlpZWxkZWQgdmFsdWUgaW4gY3Jvc3MtY2hhaW4gdHJhbnNmZXJzXFxcIlxcbiAgICByZWNlaXZlcjpzdHJpbmdcXG4gICAgcmVjZWl2ZXItZ3VhcmQ6Z3VhcmRcXG4gICAgYW1vdW50OmRlY2ltYWxcXG4gICAgc291cmNlLWNoYWluOnN0cmluZylcXG5cXG4gIChkZWZwYWN0IHRyYW5zZmVyLWNyb3NzY2hhaW46c3RyaW5nXFxuICAgICggc2VuZGVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyOnN0cmluZ1xcbiAgICAgIHJlY2VpdmVyLWd1YXJkOmd1YXJkXFxuICAgICAgdGFyZ2V0LWNoYWluOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsIClcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICg-IGFtb3VudCAwLjApKVxcbiAgICAgICAgICAgICAocHJvcGVydHkgKHZhbGlkLWFjY291bnQgc2VuZGVyKSlcXG4gICAgICAgICAgICAgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IHJlY2VpdmVyKSlcXG4gICAgICAgICAgIF1cXG5cXG4gICAgKHN0ZXBcXG4gICAgICAod2l0aC1jYXBhYmlsaXR5XFxuICAgICAgICAoVFJBTlNGRVJfWENIQUlOIHNlbmRlciByZWNlaXZlciBhbW91bnQgdGFyZ2V0LWNoYWluKVxcblxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgc2VuZGVyKVxcbiAgICAgICAgKHZhbGlkYXRlLWFjY291bnQgcmVjZWl2ZXIpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoIT0gXFxcIlxcXCIgdGFyZ2V0LWNoYWluKSBcXFwiZW1wdHkgdGFyZ2V0LWNoYWluXFxcIilcXG4gICAgICAgIChlbmZvcmNlICghPSAoYXQgJ2NoYWluLWlkIChjaGFpbi1kYXRhKSkgdGFyZ2V0LWNoYWluKVxcbiAgICAgICAgICBcXFwiY2Fubm90IHJ1biBjcm9zcy1jaGFpbiB0cmFuc2ZlcnMgdG8gdGhlIHNhbWUgY2hhaW5cXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKD4gYW1vdW50IDAuMClcXG4gICAgICAgICAgXFxcInRyYW5zZmVyIHF1YW50aXR5IG11c3QgYmUgcG9zaXRpdmVcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2UtdW5pdCBhbW91bnQpXFxuXFxuICAgICAgICAoZW5mb3JjZSAoY29udGFpbnMgdGFyZ2V0LWNoYWluIFZBTElEX0NIQUlOX0lEUylcXG4gICAgICAgICAgXFxcInRhcmdldCBjaGFpbiBpcyBub3QgYSB2YWxpZCBjaGFpbndlYiBjaGFpbiBpZFxcXCIpXFxuXFxuICAgICAgICA7OyBzdGVwIDEgLSBkZWJpdCBkZWxldGUtYWNjb3VudCBvbiBjdXJyZW50IGNoYWluXFxuICAgICAgICAoZGViaXQgc2VuZGVyIGFtb3VudClcXG4gICAgICAgIChlbWl0LWV2ZW50IChUUkFOU0ZFUiBzZW5kZXIgXFxcIlxcXCIgYW1vdW50KSlcXG5cXG4gICAgICAgIChsZXRcXG4gICAgICAgICAgKChjcm9zc2NoYWluLWRldGFpbHM6b2JqZWN0e2Nyb3NzY2hhaW4tc2NoZW1hfVxcbiAgICAgICAgICAgIHsgXFxcInJlY2VpdmVyXFxcIiA6IHJlY2VpdmVyXFxuICAgICAgICAgICAgLCBcXFwicmVjZWl2ZXItZ3VhcmRcXFwiIDogcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICAgICAsIFxcXCJhbW91bnRcXFwiIDogYW1vdW50XFxuICAgICAgICAgICAgLCBcXFwic291cmNlLWNoYWluXFxcIiA6IChhdCAnY2hhaW4taWQgKGNoYWluLWRhdGEpKVxcbiAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAoeWllbGQgY3Jvc3NjaGFpbi1kZXRhaWxzIHRhcmdldC1jaGFpbilcXG4gICAgICAgICAgKSkpXFxuXFxuICAgIChzdGVwXFxuICAgICAgKHJlc3VtZVxcbiAgICAgICAgeyBcXFwicmVjZWl2ZXJcXFwiIDo9IHJlY2VpdmVyXFxuICAgICAgICAsIFxcXCJyZWNlaXZlci1ndWFyZFxcXCIgOj0gcmVjZWl2ZXItZ3VhcmRcXG4gICAgICAgICwgXFxcImFtb3VudFxcXCIgOj0gYW1vdW50XFxuICAgICAgICAsIFxcXCJzb3VyY2UtY2hhaW5cXFwiIDo9IHNvdXJjZS1jaGFpblxcbiAgICAgICAgfVxcblxcbiAgICAgICAgKGVtaXQtZXZlbnQgKFRSQU5TRkVSIFxcXCJcXFwiIHJlY2VpdmVyIGFtb3VudCkpXFxuICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVJfWENIQUlOX1JFQ0QgXFxcIlxcXCIgcmVjZWl2ZXIgYW1vdW50IHNvdXJjZS1jaGFpbikpXFxuXFxuICAgICAgICA7OyBzdGVwIDIgLSBjcmVkaXQgY3JlYXRlIGFjY291bnQgb24gdGFyZ2V0IGNoYWluXFxuICAgICAgICAod2l0aC1jYXBhYmlsaXR5IChDUkVESVQgcmVjZWl2ZXIpXFxuICAgICAgICAgIChjcmVkaXQgcmVjZWl2ZXIgcmVjZWl2ZXItZ3VhcmQgYW1vdW50KSlcXG4gICAgICAgICkpXFxuICAgIClcXG5cXG5cXG4gIDsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cXG4gIDsgQ29pbiBhbGxvY2F0aW9uc1xcblxcbiAgKGRlZnNjaGVtYSBhbGxvY2F0aW9uLXNjaGVtYVxcbiAgICBAZG9jIFxcXCJHZW5lc2lzIGFsbG9jYXRpb24gcmVnaXN0cnlcXFwiXFxuICAgIDtAbW9kZWwgWyAoaW52YXJpYW50ICg-PSBiYWxhbmNlIDAuMCkpIF1cXG5cXG4gICAgYmFsYW5jZTpkZWNpbWFsXFxuICAgIGRhdGU6dGltZVxcbiAgICBndWFyZDpndWFyZFxcbiAgICByZWRlZW1lZDpib29sKVxcblxcbiAgKGRlZnRhYmxlIGFsbG9jYXRpb24tdGFibGU6e2FsbG9jYXRpb24tc2NoZW1hfSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50XFxuICAgICggYWNjb3VudDpzdHJpbmdcXG4gICAgICBkYXRlOnRpbWVcXG4gICAgICBrZXlzZXQtcmVmOnN0cmluZ1xcbiAgICAgIGFtb3VudDpkZWNpbWFsXFxuICAgIClcXG5cXG4gICAgQGRvYyBcXFwiQWRkIGFuIGVudHJ5IHRvIHRoZSBjb2luIGFsbG9jYXRpb24gdGFibGUuIFRoaXMgZnVuY3Rpb24gXFxcXFxcbiAgICAgICAgIFxcXFxhbHNvIGNyZWF0ZXMgYSBjb3JyZXNwb25kaW5nIGVtcHR5IGNvaW4gY29udHJhY3QgYWNjb3VudCBcXFxcXFxuICAgICAgICAgXFxcXG9mIHRoZSBzYW1lIG5hbWUgYW5kIGd1YXJkLiBSZXF1aXJlcyBHRU5FU0lTIGNhcGFiaWxpdHkuIFxcXCJcXG5cXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgIChyZXF1aXJlLWNhcGFiaWxpdHkgKEdFTkVTSVMpKVxcblxcbiAgICAodmFsaWRhdGUtYWNjb3VudCBhY2NvdW50KVxcbiAgICAoZW5mb3JjZSAoPj0gYW1vdW50IDAuMClcXG4gICAgICBcXFwiYWxsb2NhdGlvbiBhbW91bnQgbXVzdCBiZSBub24tbmVnYXRpdmVcXFwiKVxcblxcbiAgICAoZW5mb3JjZS11bml0IGFtb3VudClcXG5cXG4gICAgKGxldFxcbiAgICAgICgoZ3VhcmQ6Z3VhcmQgKGtleXNldC1yZWYtZ3VhcmQga2V5c2V0LXJlZikpKVxcblxcbiAgICAgIChjcmVhdGUtYWNjb3VudCBhY2NvdW50IGd1YXJkKVxcblxcbiAgICAgIChpbnNlcnQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICB7IFxcXCJiYWxhbmNlXFxcIiA6IGFtb3VudFxcbiAgICAgICAgLCBcXFwiZGF0ZVxcXCIgOiBkYXRlXFxuICAgICAgICAsIFxcXCJndWFyZFxcXCIgOiBndWFyZFxcbiAgICAgICAgLCBcXFwicmVkZWVtZWRcXFwiIDogZmFsc2VcXG4gICAgICAgIH0pKSlcXG5cXG4gIChkZWZ1biByZWxlYXNlLWFsbG9jYXRpb25cXG4gICAgKCBhY2NvdW50OnN0cmluZyApXFxuXFxuICAgIEBkb2MgXFxcIlJlbGVhc2UgZnVuZHMgYXNzb2NpYXRlZCB3aXRoIGFsbG9jYXRpb24gQUNDT1VOVCBpbnRvIG1haW4gbGVkZ2VyLiAgIFxcXFxcXG4gICAgICAgICBcXFxcQUNDT1VOVCBtdXN0IGFscmVhZHkgZXhpc3QgaW4gbWFpbiBsZWRnZXIuIEFsbG9jYXRpb24gaXMgZGVhY3RpdmF0ZWQgXFxcXFxcbiAgICAgICAgIFxcXFxhZnRlciByZWxlYXNlLlxcXCJcXG4gICAgQG1vZGVsIFsgKHByb3BlcnR5ICh2YWxpZC1hY2NvdW50IGFjY291bnQpKSBdXFxuXFxuICAgICh2YWxpZGF0ZS1hY2NvdW50IGFjY291bnQpXFxuXFxuICAgICh3aXRoLXJlYWQgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgeyBcXFwiYmFsYW5jZVxcXCIgOj0gYmFsYW5jZVxcbiAgICAgICwgXFxcImRhdGVcXFwiIDo9IHJlbGVhc2UtdGltZVxcbiAgICAgICwgXFxcInJlZGVlbWVkXFxcIiA6PSByZWRlZW1lZFxcbiAgICAgICwgXFxcImd1YXJkXFxcIiA6PSBndWFyZFxcbiAgICAgIH1cXG5cXG4gICAgICAobGV0ICgoY3Vyci10aW1lOnRpbWUgKGF0ICdibG9jay10aW1lIChjaGFpbi1kYXRhKSkpKVxcblxcbiAgICAgICAgKGVuZm9yY2UgKG5vdCByZWRlZW1lZClcXG4gICAgICAgICAgXFxcImFsbG9jYXRpb24gZnVuZHMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVkZWVtZWRcXFwiKVxcblxcbiAgICAgICAgKGVuZm9yY2VcXG4gICAgICAgICAgKD49IGN1cnItdGltZSByZWxlYXNlLXRpbWUpXFxuICAgICAgICAgIChmb3JtYXQgXFxcImZ1bmRzIGxvY2tlZCB1bnRpbCB7fS4gY3VycmVudCB0aW1lOiB7fVxcXCIgW3JlbGVhc2UtdGltZSBjdXJyLXRpbWVdKSlcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKFJFTEVBU0VfQUxMT0NBVElPTiBhY2NvdW50IGJhbGFuY2UpXFxuXFxuICAgICAgICAoZW5mb3JjZS1ndWFyZCBndWFyZClcXG5cXG4gICAgICAgICh3aXRoLWNhcGFiaWxpdHkgKENSRURJVCBhY2NvdW50KVxcbiAgICAgICAgICAoZW1pdC1ldmVudCAoVFJBTlNGRVIgXFxcIlxcXCIgYWNjb3VudCBiYWxhbmNlKSlcXG4gICAgICAgICAgKGNyZWRpdCBhY2NvdW50IGd1YXJkIGJhbGFuY2UpXFxuXFxuICAgICAgICAgICh1cGRhdGUgYWxsb2NhdGlvbi10YWJsZSBhY2NvdW50XFxuICAgICAgICAgICAgeyBcXFwicmVkZWVtZWRcXFwiIDogdHJ1ZVxcbiAgICAgICAgICAgICwgXFxcImJhbGFuY2VcXFwiIDogMC4wXFxuICAgICAgICAgICAgfSlcXG5cXG4gICAgICAgICAgXFxcIkFsbG9jYXRpb24gc3VjY2Vzc2Z1bGx5IHJlbGVhc2VkIHRvIG1haW4gbGVkZ2VyXFxcIikpXFxuICAgICkpKVxcblxcbilcXG5cXG4oY3JlYXRlLXRhYmxlIGNvaW4tdGFibGUpXFxuKGNyZWF0ZS10YWJsZSBhbGxvY2F0aW9uLXRhYmxlKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiY29pbi1jb250cmFjdC12Ni1pbnN0YWxsXCJ9In0", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IlRhYmxlQ3JlYXRlZCJ9LCJyZXFLZXkiOiJHUklRdTRoQUtrMElEOUY4el8tMHlYeUFLSjMzTVB5VFlNWE9qbFBKbXBJIiwibG9ncyI6InFsZDBleGFpdDNNRVdYcl9UeFZPcm9BWGNfcGlHSlhSVGJSMTBSb0NsMUkiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjozfQ") + , (unsafeFromText "eyJoYXNoIjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihpbnRlcmZhY2UgZ2FzLXBheWVyLXYxXFxuXFxuICAoZGVmY2FwIEdBU19QQVlFUjpib29sXFxuICAgICggdXNlcjpzdHJpbmdcXG4gICAgICBsaW1pdDppbnRlZ2VyXFxuICAgICAgcHJpY2U6ZGVjaW1hbFxcbiAgICApXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgY2FwYWJpbGl0eSBpbmRpY2F0aW5nIHRoYXQgZGVjbGFyaW5nIG1vZHVsZSBzdXBwb3J0cyBcXFxcXFxuICAgIFxcXFwgZ2FzIHBheW1lbnQgZm9yIFVTRVIgZm9yIGdhcyBMSU1JVCBhbmQgUFJJQ0UuIEZ1bmN0aW9uYWxpdHkgXFxcXFxcbiAgICBcXFxcIHNob3VsZCByZXF1aXJlIGNhcGFiaWxpdHkgKGNvaW4uRlVORF9UWCksIGFuZCBzaG91bGQgdmFsaWRhdGUgXFxcXFxcbiAgICBcXFxcIHRoZSBzcGVuZCBvZiAobGltaXQgKiBwcmljZSksIHBvc3NpYmx5IHVwZGF0aW5nIHNvbWUgZGF0YWJhc2UgXFxcXFxcbiAgICBcXFxcIGVudHJ5LiBcXFxcXFxuICAgIFxcXFwgU2hvdWxkIGNvbXBvc2UgY2FwYWJpbGl0eSByZXF1aXJlZCBmb3IgJ2NyZWF0ZS1nYXMtcGF5ZXItZ3VhcmQnLlxcXCJcXG4gICAgQG1vZGVsXFxuICAgIFsgKHByb3BlcnR5ICh1c2VyICE9IFxcXCJcXFwiKSlcXG4gICAgICAocHJvcGVydHkgKGxpbWl0ID4gMCkpXFxuICAgICAgKHByb3BlcnR5IChwcmljZSA-IDAuMCkpXFxuICAgIF1cXG4gIClcXG5cXG4gIChkZWZ1biBjcmVhdGUtZ2FzLXBheWVyLWd1YXJkOmd1YXJkICgpXFxuICAgIEBkb2NcXG4gICAgXFxcIiBQcm92aWRlIGEgZ3VhcmQgc3VpdGFibGUgZm9yIGNvbnRyb2xsaW5nIGEgY29pbiBhY2NvdW50IHRoYXQgY2FuIFxcXFxcXG4gICAgXFxcXCBwYXkgZ2FzIHZpYSBHQVNfUEFZRVIgbWVjaGFuaWNzLiBHZW5lcmFsbHkgdGhpcyBpcyBhY2NvbXBsaXNoZWQgXFxcXFxcbiAgICBcXFxcIGJ5IGhhdmluZyBHQVNfUEFZRVIgY29tcG9zZSBhbiB1bnBhcmFtZXRlcml6ZWQsIHVubWFuYWdlZCBjYXBhYmlsaXR5IFxcXFxcXG4gICAgXFxcXCB0aGF0IGlzIHJlcXVpcmVkIGluIHRoaXMgZ3VhcmQuIFRodXMsIGlmIGNvaW4gY29udHJhY3QgaXMgYWJsZSB0byBcXFxcXFxuICAgIFxcXFwgc3VjY2Vzc2Z1bGx5IGFjcXVpcmUgR0FTX1BBWUVSLCB0aGUgY29tcG9zZWQgJ2Fub255bW91cycgY2FwIHJlcXVpcmVkIFxcXFxcXG4gICAgXFxcXCBoZXJlIHdpbGwgYmUgaW4gc2NvcGUsIGFuZCBnYXMgYnV5IHdpbGwgc3VjY2VlZC5cXFwiXFxuICApXFxuXFxuKVxcblwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwiZ2VuZXNpcy0wMVwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IkxvYWRlZCBpbnRlcmZhY2UgZ2FzLXBheWVyLXYxLCBoYXNoIGlJV0FQMW9lbl9rcFhqRmJuUU04N0FKUlpJZ3RzZlpjQXdZckV5MjFSV1EifSwicmVxS2V5IjoiU0IzVzVFTGl6azl4elNWWk9MX3dsem5VNjh5aUhPQzlwWUhreHBVXzBnbyIsImxvZ3MiOiJ3TXdXV3hkSFVuU1VOWXJ1RXlISEtTTzUyeGtkVXU0TXBmbE1FcHYyT05FIiwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6NH0") + , (unsafeFromText "eyJoYXNoIjoiQ1pteWxXZmllUk1CTXU1dzJFT21wRndLLXQ3YmNPVHM0bUsyYVQzM3VSNCIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wibnMtYWRtaW4ta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLW9wZXJhdGUta2V5c2V0XCI6W1wiMzY4ODIwZjgwYzMyNGJiYzdjMmIwNjEwNjg4YTdkYTQzZTM5ZjkxZDExODczMjY3MWNkOWM3NTAwZmY0M2NjYVwiXSxcIm5zLWdlbmVzaXMta2V5c2V0XCI6e1wicHJlZFwiOlwiPVwiLFwia2V5c1wiOltdfX0sXCJjb2RlXCI6XCIoZGVmaW5lLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0IChyZWFkLWtleXNldCAnbnMtYWRtaW4ta2V5c2V0KSlcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1nZW5lc2lzLWtleXNldCkpXFxuXFxuKG1vZHVsZSBucyBHT1ZFUk5BTkNFXFxuICBcXFwiQWRtaW5pc3RlcnMgZGVmaW5pdGlvbiBvZiBuZXcgbmFtZXNwYWNlcyBpbiBDaGFpbndlYi5cXFwiXFxuXFxuICAoZGVmc2NoZW1hIHJlZy1lbnRyeVxcbiAgICBhZG1pbi1ndWFyZDpndWFyZFxcbiAgICBhY3RpdmU6Ym9vbClcXG5cXG4gIChkZWZ0YWJsZSByZWdpc3RyeTp7cmVnLWVudHJ5fSlcXG5cXG4gIChkZWZjYXAgR09WRVJOQU5DRSAoKVxcbiAgICAoZW5mb3JjZS1rZXlzZXQgJ25zLWFkbWluLWtleXNldCkpXFxuXFxuICAoZGVmY2FwIE9QRVJBVEUgKClcXG4gICAgKGVuZm9yY2Uta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuICAoZGVmY29uc3QgR1VBUkRfU1VDQ0VTUyAoY3JlYXRlLXVzZXItZ3VhcmQgKHN1Y2Nlc3MpKSlcXG4gIChkZWZjb25zdCBHVUFSRF9GQUlMVVJFIChjcmVhdGUtdXNlci1ndWFyZCAoZmFpbHVyZSkpKVxcblxcbiAgKGRlZnVuIHN1Y2Nlc3MgKClcXG4gICAgdHJ1ZSlcXG4gIChkZWZ1biBmYWlsdXJlICgpXFxuICAgIChlbmZvcmNlIGZhbHNlIFxcXCJEaXNhYmxlZFxcXCIpKVxcblxcbiAgKGRlZnVuIHZhbGlkYXRlLW5hbWUgKG5hbWUpXFxuICAgIChlbmZvcmNlICghPSBcXFwiXFxcIiBuYW1lKSBcXFwiRW1wdHkgbmFtZSBub3QgYWxsb3dlZFxcXCIpXFxuICAgIChlbmZvcmNlICg8IChsZW5ndGggbmFtZSkgNjQpIFxcXCJOYW1lIG11c3QgYmUgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgbG9uZ1xcXCIpXFxuICAgIChlbmZvcmNlIChpcy1jaGFyc2V0IENIQVJTRVRfTEFUSU4xIG5hbWUpXFxuICAgICAgICAgICAgIFxcXCJOYW1lIG11c3QgYmUgaW4gbGF0aW4xIGNoYXJzZXRcXFwiKSlcXG5cXG4gIChkZWZ1biBjcmVhdGUtcHJpbmNpcGFsLW5hbWVzcGFjZTpzdHJpbmdcXG4gICAgICAoIGc6Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBGb3JtYXQgcHJpbmNpcGFsIG5hbWVzcGFjZSBhcyBQYWN0IGhhc2ggKEJMQUtFMmIyNTYpIG9mIHByaW5jaXBhbCBcXFxcXFxuICAgIFxcXFwgaW4gaGV4IHRydW5jYXRlZCB0byAxNjAgYml0cyAoNDAgY2hhcmFjdGVycyksIHByZXBlbmRlZCB3aXRoICduXycuXFxcXFxcbiAgICBcXFxcIE9ubHkgdzogYW5kIGs6IGFjY291bnQgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuIFxcXCJcXG5cXG4gICAgKGxldFxcbiAgICAgICgodHkgKHR5cGVvZi1wcmluY2lwYWwgKGNyZWF0ZS1wcmluY2lwYWwgZykpKSlcXG5cXG4gICAgICA7OyBvbmx5IHc6IGFuZCBrOiBjdXJyZW50bHkgc3VwcG9ydGVkXFxuICAgICAgKGlmIChvciAoPSB0eSBcXFwiazpcXFwiKSAoPSB0eSBcXFwidzpcXFwiKSlcXG4gICAgICAgICgrIFxcXCJuX1xcXCIgKHRha2UgNDAgKGludC10by1zdHIgMTYgKHN0ci10by1pbnQgNjQgKGhhc2ggZykpKSkpXFxuICAgICAgICAoZW5mb3JjZSBmYWxzZVxcbiAgICAgICAgICAoZm9ybWF0IFxcXCJVbnN1cHBvcnRlZCBndWFyZCBwcm90b2NvbDoge31cXFwiIFt0eV0pKVxcbiAgICAgICAgKSlcXG4gIClcXG5cXG4gIChkZWZ1biB2YWxpZGF0ZTpib29sXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgbnMtYWRtaW46Z3VhcmRcXG4gICAgICAgIClcXG4gICAgXFxcIiBNYW5hZ2VzIG5hbWVzcGFjZSBpbnN0YWxsIGZvciBDaGFpbndlYi4gXFxcXFxcbiAgICBcXFxcIEFsbG93cyBwcmluY2lwYWwgbmFtZXNwYWNlcy4gXFxcXFxcbiAgICBcXFxcIE5vbi1wcmluY2lwYWwgbmFtZXNwYWNlcyByZXF1aXJlIGFjdGl2ZSByb3cgaW4gcmVnaXN0cnkgXFxcXFxcbiAgICBcXFxcIGZvciBOUy1OQU1FIHdpdGggZ3VhcmQgbWF0Y2hpbmcgTlMtQURNSU4uXFxcIlxcblxcbiAgICAoaWYgKD0gKGNyZWF0ZS1wcmluY2lwYWwtbmFtZXNwYWNlIG5zLWFkbWluKSBucy1uYW1lKVxcblxcbiAgICAgIHRydWUgOzsgYWxsb3cgcHJpbmNpcGFsIG5hbWVzcGFjZXNcXG5cXG4gICAgICAod2l0aC1kZWZhdWx0LXJlYWQgcmVnaXN0cnkgbnMtbmFtZSAgICAgICA7OyBvdGhlcndpc2UgZW5mb3JjZSByZWdpc3RyeVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOiBucy1hZG1pblxcbiAgICAgICAgLCAnYWN0aXZlIDogZmFsc2UgfVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQgOj0gYWdcXG4gICAgICAgICwgJ2FjdGl2ZSA6PSBpcy1hY3RpdmUgfVxcblxcbiAgICAgICAgKGVuZm9yY2UgaXMtYWN0aXZlIFxcXCJJbmFjdGl2ZSBvciB1bnJlZ2lzdGVyZWQgbmFtZXNwYWNlXFxcIilcXG4gICAgICAgIChlbmZvcmNlICg9IG5zLWFkbWluIGFnKSBcXFwiQWRtaW4gZ3VhcmQgbXVzdCBtYXRjaCBndWFyZCBpbiByZWdpc3RyeVxcXCIpXFxuXFxuICAgICAgICB0cnVlKVxcbiAgICAgICkpXFxuXFxuICAoZGVmdW4gd3JpdGUtcmVnaXN0cnk6c3RyaW5nXFxuICAgICAgKCBucy1uYW1lOnN0cmluZ1xcbiAgICAgICAgZ3VhcmQ6Z3VhcmRcXG4gICAgICAgIGFjdGl2ZTpib29sXFxuICAgICAgICApXFxuICAgIFxcXCIgV3JpdGUgZW50cnkgd2l0aCBHVUFSRCBhbmQgQUNUSVZFIGludG8gcmVnaXN0cnkgZm9yIE5BTUUuIFxcXFxcXG4gICAgXFxcXCBHdWFyZGVkIGJ5IG9wZXJhdGUga2V5c2V0LiBcXFwiXFxuXFxuICAgICh3aXRoLWNhcGFiaWxpdHkgKE9QRVJBVEUpXFxuXFxuICAgICAgKHZhbGlkYXRlLW5hbWUgbnMtbmFtZSlcXG5cXG4gICAgICAod3JpdGUgcmVnaXN0cnkgbnMtbmFtZVxcbiAgICAgICAgeyAnYWRtaW4tZ3VhcmQ6IGd1YXJkXFxuICAgICAgICAsICdhY3RpdmU6IGFjdGl2ZSB9KVxcblxcbiAgICAgIFxcXCJSZWdpc3RlciBlbnRyeSB3cml0dGVuXFxcIikpXFxuXFxuICAoZGVmdW4gcXVlcnk6b2JqZWN0e3JlZy1lbnRyeX1cXG4gICAgICAoIG5zLW5hbWU6c3RyaW5nIClcXG4gICAgKHJlYWQgcmVnaXN0cnkgbnMtbmFtZSkpXFxuXFxuKVxcblxcbihjcmVhdGUtdGFibGUgcmVnaXN0cnkpXFxuXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJrYWRlbmFcXFwiXFxuICAoa2V5c2V0LXJlZi1ndWFyZCAnbnMtb3BlcmF0ZS1rZXlzZXQpIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJ1c2VyXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuKHdyaXRlLXJlZ2lzdHJ5IFxcXCJmcmVlXFxcIiBHVUFSRF9GQUlMVVJFIHRydWUpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcImthZGVuYVxcXCJcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldClcXG4gIChrZXlzZXQtcmVmLWd1YXJkICducy1vcGVyYXRlLWtleXNldCkpXFxuXFxuKGRlZmluZS1uYW1lc3BhY2UgXFxcInVzZXJcXFwiIEdVQVJEX1NVQ0NFU1MgR1VBUkRfRkFJTFVSRSlcXG4oZGVmaW5lLW5hbWVzcGFjZSBcXFwiZnJlZVxcXCIgR1VBUkRfU1VDQ0VTUyBHVUFSRF9GQUlMVVJFKVxcbjs7cm90YXRlIHRvIHJlYWwgb3BlcmF0ZSBrZXlzZXRcXG4oZGVmaW5lLWtleXNldCAnbnMtb3BlcmF0ZS1rZXlzZXQgKHJlYWQta2V5c2V0ICducy1vcGVyYXRlLWtleXNldCkpXFxuXCJ9fSxcInNpZ25lcnNcIjpbXSxcIm1ldGFcIjp7XCJjcmVhdGlvblRpbWVcIjowLFwidHRsXCI6MTcyODAwLFwiZ2FzTGltaXRcIjowLFwiY2hhaW5JZFwiOlwiXCIsXCJnYXNQcmljZVwiOjAsXCJzZW5kZXJcIjpcIlwifSxcIm5vbmNlXCI6XCJsb2FkLW5zLWRldm5ldC1zZW5kZXIwMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkNabXlsV2ZpZVJNQk11NXcyRU9tcEZ3Sy10N2JjT1RzNG1LMmFUMzN1UjQiLCJsb2dzIjoiaVJ4cktxek5NaU1IbkRPZGFpSG14TmYxWjJKMl9Qb3QzWG50WE5sd0JhZyIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjV9") + , (unsafeFromText "eyJoYXNoIjoiRlAyekNwNnRLaXlub011REJKNTVWc1Z6dHlyRGpKMVNhck5ycElIZWtQTSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiU0IgPDQzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDI1PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiUFNfQzNcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIkZUU19DMVwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjI5ZjcxMDdiMzlmNmMxOTQ3Zjk2NjIyZjY4OWJlYzY4ZTAxNTczMDc2ZDYwNjExZDNlZjZiOGNiYzQzY2ZhMGJcIixcIjdjMjFmN2I1M2M4MTY3OTgxNTI0ODcwMjRkNzFiZmNiZDQ3YjViODBhZTQzNTk0Yjk0ZGQzODQ1NDgxOGFlZmNcIixcIjFmZjk2OTk0NWFiNjA4OGNiZDNmM2E2YTZiOTcxODc2OTcxOTI3NjNkNzhmMjdmNTViZGRkYmJjMTU3YzAwYzBcIl19LFwiS2FkZW5hXCI6e1wicHJlZFwiOlwia2V5cy1hbGxcIixcImtleXNcIjpbXCIzNWZmMTI5OGM1NmZmYjYwMjI1YmVlZDMyYTYxYWRhNDFhNTdlMjM5ODI2ZWVhOThlZDI5ZTQ4ZmY4YmFjNDNmXCJdfSxcIkVtaWx5XCI6e1wicHJlZFwiOlwia2V5cy1hbGxcIixcImtleXNcIjpbXCIzNWZmMTI5OGM1NmZmYjYwMjI1YmVlZDMyYTYxYWRhNDFhNTdlMjM5ODI2ZWVhOThlZDI5ZTQ4ZmY4YmFjNDNmXCJdfSxcIlNBIDw0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDI2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiUFNfQzhcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDw0MD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDw3PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiQ1MxX0MyXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiOTY1MjlkYmI4MzkwMjc1NDg5MTJiYzZhMWNmZmI2OWM2NzdlZDk3NjYzNTAwMThjYzhjNDZhM2Y4MTlmZTE3NFwiLFwiZTUzNzA4NTY0ZjFhNzhmNmU1YTkzMDlmZDhiOWRkODU2NDY4MzJlMzc0MTYyY2QzYzY3NDIwZTIwMmE3ZTQ1YlwiLFwiNGJiNmI3MWUyZGRjNjEzOTIyNzRkMThkMTQyY2RjOGQ0ZjUwZTU0MzQzMDk4MTM4ZjlhN2QxN2ZiNTYyZDZlYVwiXX0sXCJTQSA8Mj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIkNvaW5saXN0IEdsb2JhbFwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjVhYzAyZDZjZTgwNDcxMmVjNTgyMmFiOTgxM2ZkNDgzMjY1YzEwNmRhM2ZmZjYwY2Q0OTI1ODRiYzI4OTY1ODFcIixcIjExMzYyNTI1MTY0NzU1Mzk4Mjk5YmRmMWQzZGUxZTRjNzVmYWNhOWQ3YzVkZjA0NTM5NTk5OTI4ZjRjOGQ5ZjdcIixcIjgyMTg1ODc1MmY3ZDhlOTg2YWI2YjA4Y2QwNDgxZmY0MDY4ZTMwOGNhMWQyZmY2OGFmMTI0MWVmNTc1Y2UyNTVcIl19LFwiU0IgPDk-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJFQl9DOVwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiYWxsb2NhdGlvbjAyXCI6W1wiZTllNGU3MWJkMDYzZGNmN2UwNmJkNWIxYTE2Njg4ODk3ZDE1Y2E4YmQyZTUwOWM0NTNjNjE2MjE5YzE4NmNjNVwiXSxcIlNBIDwyMD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlBTX0M1XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8MTg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8NDU-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MjM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzU-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTc-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTQ-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8Nj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0MyXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8Mjk-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQSA8OD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNCIDwzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDMzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDEyPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiUFNfQzRcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDwxMT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDw0MT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwyNz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0MxXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJDUzJfQzBcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI5YTJhMTJiYTc5MTkwOWEyYjVlOTJhYjMzNjZmNjBmNDY4OWU1MzMxZWYyODViNzA0ZWZhM2ZkODNiYzk1OWY0XCIsXCI3YmNmNzhmMDllNjRlMzdmZTQ3MDVkNWFiYjM3MzU0OTZmMzFmMDRkMzQ3YzEzOGY1ZGQzZjRlZTI2ODNhOTUyXCIsXCJmNTRlOWYyZDgxYmU0MjJhMDJhZGIwYTE3MmY4OTc1MmZjM2U1ZjlkYWU0MzUyMDg3NzZiZDVkODNhMmY2ZjI0XCJdfSxcIlNBIDw2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0EgPDE4PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDM5PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDQ2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDIwPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8Nz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIk1BSU5ORVRcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJhNDk0NzM3OWM3ZGJiNzZlZTYwYmRlZGQ2NDg0N2ExNWFhNTY1N2VmNDA2MjAxZTQ2ODYxNDc1YzkxZDNjNTFmXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI0OTI2Zjk2M2VlNWEwYzZkZjY3YTFkY2UyNDJmYmMxMWE5MDBjNDMzMmM3N2JkZGZiMGRjNWI2NmY2OTdmZWQwXCJdfSxcIlNBIDwxNT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNCIDwzND5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwxNj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwzNz5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwxNT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDw0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0EgPDE2PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiUFNfQzBcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNUX0MxXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiY2NmNmZhMWZkMzJlNThiMDQwNWYxNjlmZmI0NTVhMWEwNDM0Y2ZhZmY1Yjg1NDk4NjI4MjFmZjZiNTUxZDViM1wiLFwiYWY4MThhNWU4NjcyYWI5M2IwODU5ODdiOTQyZTg3YWE1MmZmNmM4MWJmZmFmYWYzNDM3YzAxYzhhNDFhNmZhOFwiLFwiODc0NjgzMWM1NTgwOTUwZTc0YWVmODY2NTljNmY4ZjFhY2I3MjE1MDY3ZWQ5MWQxMWZlNjkxOTQ1ZjljOGIxZVwiXX0sXCJTQSA8MTM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8MzI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNCIDwyND5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDw1PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiQ29pbmxpc3QgTm9uLVVTXCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8NDI-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MjE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJhbGxvY2F0aW9uMDBcIjpbXCJkODJkMGRjZGU5ODI1NTA1ZDg2YWZiNmRjYzEwNDExZDZiNjdhNDI5YTc5ZTIxYmRhNGJiMTE5YmYyOGFiODcxXCJdLFwiUFNfQzdcIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJjOGNlMTYyNDc5OTg0NmI1Y2I3YjFmMTlmNTY3NmYxMTZkNTRiNWU4NTc3NmJkMjhmMWI5YjhmZDY4ZDkwMTMwXCIsXCIwZTFhMGJjYTUxNDM3YjJmM2NiNWFkMDUxZGQwYzVlNWJjNTM1M2E5YzVkN2E2Y2MwMDVhZWIwODFhZmNjMWY4XCIsXCI3ZDkyODk3YWM0YzE3MWIxZTYxOTc4MmYxZmJiYmM0NzdkNjIyMjY4MzZlNzY3NjE1YjdjZTdlZmFhMjVhYTk1XCJdfSxcIlNCIDwzOD5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlNBIDwxOT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlNBIDwzPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcIjU4MjExMzlmMmQwMzM5YTE4ZGNiNGUxNWZlZmUwNWQ3YTdhNTUxN2VmZmU5MzI3ODMxYjI5Mzc1ODI4OTljYjFcIixcIjU5OWVjNTU4YWJhNjY0NTUxMzEzYTBmYmU3NmRkMDI3MjRmYTI0NWM5MDk1MmNhMDM4ZWNkYmZlNzI5ZDQ4M2FcIixcImZkMTMyOTFhNDExYzM0MWVmNjI2NWQ4OWNjMTQwMTNmNWE2NzEyZWE2N2NlMzk1YzMzYjBhYTY0MWVjYzU3YmZcIl19LFwiU0IgPDE5PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDQ0PlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDIyPlwiOntcInByZWRcIjpcImtleXMtMlwiLFwia2V5c1wiOltcImU0MjYzNGY3NWUwZDI3YTk1ZTVkZTBmMTMxN2U0NDIyMTA3NzUzNWIyMDA3NjdlZDQyY2E0MzBmN2Y2NWU4NmJcIixcIjliMzM4Mzc5YzI3OWEwNGJmYjRmZmNlNDBjM2E4ODZkNGJkYTljN2QzYzI5OWE0ODNkYzI5Y2NjM2M4YzU1MzlcIixcIjIzMmM5ZDJkNzJmNDcxOTAyNDJlNmZkMzZjNjA1MjVhYjY5OWZjZDNiZDIyZjg0ZjA2MTM0MjYwOTEwNDE1YWZcIl19LFwiU0IgPDg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTQ-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MzY-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQSA8MTc-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQiA8NT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcIlBTX0M5XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQSA8MTA-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiNTgyMTEzOWYyZDAzMzlhMThkY2I0ZTE1ZmVmZTA1ZDdhN2E1NTE3ZWZmZTkzMjc4MzFiMjkzNzU4Mjg5OWNiMVwiLFwiNTk5ZWM1NThhYmE2NjQ1NTEzMTNhMGZiZTc2ZGQwMjcyNGZhMjQ1YzkwOTUyY2EwMzhlY2RiZmU3MjlkNDgzYVwiLFwiZmQxMzI5MWE0MTFjMzQxZWY2MjY1ZDg5Y2MxNDAxM2Y1YTY3MTJlYTY3Y2UzOTVjMzNiMGFhNjQxZWNjNTdiZlwiXX0sXCJTQSA8OT5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCI1ODIxMTM5ZjJkMDMzOWExOGRjYjRlMTVmZWZlMDVkN2E3YTU1MTdlZmZlOTMyNzgzMWIyOTM3NTgyODk5Y2IxXCIsXCI1OTllYzU1OGFiYTY2NDU1MTMxM2EwZmJlNzZkZDAyNzI0ZmEyNDVjOTA5NTJjYTAzOGVjZGJmZTcyOWQ0ODNhXCIsXCJmZDEzMjkxYTQxMWMzNDFlZjYyNjVkODljYzE0MDEzZjVhNjcxMmVhNjdjZTM5NWMzM2IwYWE2NDFlY2M1N2JmXCJdfSxcIlBTX0M2XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiYzhjZTE2MjQ3OTk4NDZiNWNiN2IxZjE5ZjU2NzZmMTE2ZDU0YjVlODU3NzZiZDI4ZjFiOWI4ZmQ2OGQ5MDEzMFwiLFwiMGUxYTBiY2E1MTQzN2IyZjNjYjVhZDA1MWRkMGM1ZTViYzUzNTNhOWM1ZDdhNmNjMDA1YWViMDgxYWZjYzFmOFwiLFwiN2Q5Mjg5N2FjNGMxNzFiMWU2MTk3ODJmMWZiYmJjNDc3ZDYyMjI2ODM2ZTc2NzYxNWI3Y2U3ZWZhYTI1YWE5NVwiXX0sXCJTQiA8MzE-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8MTM-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8Mjg-XCI6e1wicHJlZFwiOlwia2V5cy0yXCIsXCJrZXlzXCI6W1wiZTQyNjM0Zjc1ZTBkMjdhOTVlNWRlMGYxMzE3ZTQ0MjIxMDc3NTM1YjIwMDc2N2VkNDJjYTQzMGY3ZjY1ZTg2YlwiLFwiOWIzMzgzNzljMjc5YTA0YmZiNGZmY2U0MGMzYTg4NmQ0YmRhOWM3ZDNjMjk5YTQ4M2RjMjljY2MzYzhjNTUzOVwiLFwiMjMyYzlkMmQ3MmY0NzE5MDI0MmU2ZmQzNmM2MDUyNWFiNjk5ZmNkM2JkMjJmODRmMDYxMzQyNjA5MTA0MTVhZlwiXX0sXCJTQiA8Mj5cIjp7XCJwcmVkXCI6XCJrZXlzLTJcIixcImtleXNcIjpbXCJlNDI2MzRmNzVlMGQyN2E5NWU1ZGUwZjEzMTdlNDQyMjEwNzc1MzViMjAwNzY3ZWQ0MmNhNDMwZjdmNjVlODZiXCIsXCI5YjMzODM3OWMyNzlhMDRiZmI0ZmZjZTQwYzNhODg2ZDRiZGE5YzdkM2MyOTlhNDgzZGMyOWNjYzNjOGM1NTM5XCIsXCIyMzJjOWQyZDcyZjQ3MTkwMjQyZTZmZDM2YzYwNTI1YWI2OTlmY2QzYmQyMmY4NGYwNjEzNDI2MDkxMDQxNWFmXCJdfSxcImFsbG9jYXRpb24wMVwiOltcImI0YzhhM2VhOTFkMzE0NmIwNTYwOTk0NzQwZjBlM2VlZDkxYzU5ZDJlZWNhMWRjOTlmMGMyODcyODQ1YzI5NGRcIl19LFwiY29kZVwiOlwiKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwyPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8Mz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDw0PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8ND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDw1PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8Nj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDw3PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8Nz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDg-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDw4PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8OT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDk-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxMD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDEwPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxMT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDEyPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxMz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDEzPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDE1PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxNj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDE2PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MTc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwxNz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0EgPDE4PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQSA8MTg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNBIDwxOT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0EgPDE5PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQSA8MjA-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNBIDwyMD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Nj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw3PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8OD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw5PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8OT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDEwPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTA-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxMT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDExPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxMj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDEzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxND5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDE0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxNT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwxNz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDE3PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MTg-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwxOD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDE5PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MTk-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyMD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDIwPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MjE-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyMT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDIyPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MjI-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyMz5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDIzPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MjQ-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyND5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDI1PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MjU-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyNj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI2PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mjc-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwyNz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDI4PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mjg-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwyOT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDI5PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzA-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzMD5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDMxPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MzE-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzMj5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDMyPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzM-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzMz5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDM0PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8MzQ-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzNT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDM1PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8MzY-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzNj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDM3PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8Mzc-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDwzOD5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDM4PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8Mzk-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDwzOT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQwPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDA-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw0MT5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDQxPlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NDI-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0Mj5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQzPlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDM-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlNCIDw0ND5cXFwiIChyZWFkLWtleXNldCBcXFwiU0IgPDQ0PlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTQiA8NDU-XFxcIiAocmVhZC1rZXlzZXQgXFxcIlNCIDw0NT5cXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiU0IgPDQ2PlxcXCIgKHJlYWQta2V5c2V0IFxcXCJTQiA8NDY-XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MwXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MxXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MxXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MyXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MyXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0MzXFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0MzXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M0XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M0XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M1XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M1XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M2XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M2XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M3XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M3XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M4XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M4XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIlBTX0M5XFxcIiAocmVhZC1rZXlzZXQgXFxcIlBTX0M5XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkVCX0M5XFxcIiAocmVhZC1rZXlzZXQgXFxcIkVCX0M5XFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkNvaW5saXN0IE5vbi1VU1xcXCIgKHJlYWQta2V5c2V0IFxcXCJDb2lubGlzdCBOb24tVVNcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiQ29pbmxpc3QgR2xvYmFsXFxcIiAocmVhZC1rZXlzZXQgXFxcIkNvaW5saXN0IEdsb2JhbFxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJGVFNfQzFcXFwiIChyZWFkLWtleXNldCBcXFwiRlRTX0MxXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIkNTMV9DMlxcXCIgKHJlYWQta2V5c2V0IFxcXCJDUzFfQzJcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiQ1MyX0MwXFxcIiAocmVhZC1rZXlzZXQgXFxcIkNTMl9DMFxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJTVF9DMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJTVF9DMVxcXCIpKVxcblxcbihkZWZpbmUta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDBcXFwiIChyZWFkLWtleXNldCBcXFwiYWxsb2NhdGlvbjAwXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcImFsbG9jYXRpb24wMVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbGxvY2F0aW9uMDFcXFwiKSlcXG4oZGVmaW5lLWtleXNldCBcXFwiYWxsb2NhdGlvbjAyXFxcIiAocmVhZC1rZXlzZXQgXFxcImFsbG9jYXRpb24wMlxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJFbWlseVxcXCIgKHJlYWQta2V5c2V0IFxcXCJFbWlseVxcXCIpKVxcbihkZWZpbmUta2V5c2V0IFxcXCJLYWRlbmFcXFwiIChyZWFkLWtleXNldCBcXFwiS2FkZW5hXFxcIikpXFxuKGRlZmluZS1rZXlzZXQgXFxcIk1BSU5ORVRcXFwiIChyZWFkLWtleXNldCBcXFwiTUFJTk5FVFxcXCIpKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwidGVzdG5ldC1rZXlzZXRzLU5cIn0ifQ", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IktleXNldCB3cml0ZSBzdWNjZXNzIn0sInJlcUtleSI6IkZQMnpDcDZ0S2l5bm9NdURCSjU1VnNWenR5ckRqSjFTYXJOcnBJSGVrUE0iLCJsb2dzIjoiY0NzZzlqbXRKalplOG5lZjF2VjBlU0p0cmhlUUtJeGFrUEFFVHhVVDFnayIsIm1ldGFEYXRhIjpudWxsLCJjb250aW51YXRpb24iOm51bGwsInR4SWQiOjZ9") + , (unsafeFromText "eyJoYXNoIjoiV2hKVTlyMXZWc0NOdmFWdUdBaHRYempMdTR3UlR3TGsxNlQ2OEY2N3FMdyIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6bnVsbCxcImNvZGVcIjpcIihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcIkVtaWx5XFxcIiAodGltZSBcXFwiMjAxOS0xMC0wMVQwMDowMDowMFpcXFwiKSBcXFwiRW1pbHlcXFwiIDY2NjY2Ni42NylcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJNQUlOTkVUXzFcXFwiICh0aW1lIFxcXCIyMDE5LTEwLTI5VDE0OjAwOjAwWlxcXCIpIFxcXCJNQUlOTkVUXFxcIiA2NjY2NjYuNjcpXFxuKGNvaW4uY3JlYXRlLWFsbG9jYXRpb24tYWNjb3VudCBcXFwiTUFJTk5FVF8yXFxcIiAodGltZSBcXFwiMjAxOS0xMC0yOVQxNzowMDowMFpcXFwiKSBcXFwiTUFJTk5FVFxcXCIgNjY2NjY2LjY3KVxcbihjb2luLmNyZWF0ZS1hbGxvY2F0aW9uLWFjY291bnQgXFxcIk1BSU5ORVRfM1xcXCIgKHRpbWUgXFxcIjIwMTktMTEtMjlUMTc6MDA6MDBaXFxcIikgXFxcIk1BSU5ORVRcXFwiIDY2NjY2Ni42NylcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDBcXFwiICh0aW1lIFxcXCIxOTAwLTEwLTE1VDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDBcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDFcXFwiICh0aW1lIFxcXCIyMDIwLTEwLTMxVDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDFcXFwiIDEwMDAwMDAuMClcXG4oY29pbi5jcmVhdGUtYWxsb2NhdGlvbi1hY2NvdW50IFxcXCJhbGxvY2F0aW9uMDJcXFwiICh0aW1lIFxcXCIxOTAwLTEwLTMxVDE4OjAwOjAwWlxcXCIpIFxcXCJhbGxvY2F0aW9uMDJcXFwiIDEwMDAwMDAuMClcIn19LFwic2lnbmVyc1wiOltdLFwibWV0YVwiOntcImNyZWF0aW9uVGltZVwiOjAsXCJ0dGxcIjoxNzI4MDAsXCJnYXNMaW1pdFwiOjAsXCJjaGFpbklkXCI6XCJcIixcImdhc1ByaWNlXCI6MCxcInNlbmRlclwiOlwiXCJ9LFwibm9uY2VcIjpcInRlc3RuZXQtYWxsb2NhdGlvbnMtMFwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJXaEpVOXIxdlZzQ052YVZ1R0FodFh6akx1NHdSVHdMazE2VDY4RjY3cUx3IiwibG9ncyI6IkI1elZaYVRDWk9sbERjR2tGRDRhcHJPTi1mUlY1ZFlUWEJyTmtSSVo4LTQiLCJtZXRhRGF0YSI6bnVsbCwiY29udGludWF0aW9uIjpudWxsLCJ0eElkIjo3fQ") + , (unsafeFromText "eyJoYXNoIjoieDZKbnc4YXhaYVJLTVphVEtmTzA2dXMyQTRrRTBES2owRm5BVEZXVWVXVSIsInNpZ3MiOltdLCJjbWQiOiJ7XCJuZXR3b3JrSWRcIjpudWxsLFwicGF5bG9hZFwiOntcImV4ZWNcIjp7XCJkYXRhXCI6e1wiNGM3MzU2NmI1ZDhmYTRjZDJhMjYyMGY3YjJiYzU3Mjg0YzdmYzVjNDhmOGYwZGIyYmYxNjc1Y2FkMDhkYzRhZlwiOltcIjRjNzM1NjZiNWQ4ZmE0Y2QyYTI2MjBmN2IyYmM1NzI4NGM3ZmM1YzQ4ZjhmMGRiMmJmMTY3NWNhZDA4ZGM0YWZcIl0sXCJlbWlseVwiOltcIjM2ODA1OWFiMjViZWM5MmYxOWE0ZjhjZTE3MjAzMGU1ZDY3MmU0ODc5YWFhZThkNWJlOGI3MDVkZDNkZmFlN2ZcIl0sXCJjYmI5NGIxMmY1NWJkNTQwYTVhYTUwNzYzNTExMTkzOGYyMjgyYzI4OTFiNzhjMTNlNDYyZmEwMThjNDE0NWQ4XCI6W1wiY2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOFwiXSxcIjQ5YjQxMDM0YWI5YmEwYjdmZDkyZmQ1M2ViNzlkN2ZkM2Q2MDExOTFhMTUyNjk2ODI4MzBmOWM5MmUzNjg4YWRcIjpbXCI0OWI0MTAzNGFiOWJhMGI3ZmQ5MmZkNTNlYjc5ZDdmZDNkNjAxMTkxYTE1MjY5NjgyODMwZjljOTJlMzY4OGFkXCJdLFwiYW5hc3Rhc2lhXCI6W1wiMWVjNzRkZTcyNGIzYzcwMDczN2Q5OTkwNmFiYTQ4ZGJlZDZiOTAxNDBiYmM2NDEzM2M1NTg1NzFiMTg4ODNjM1wiXSxcIjVlNGE4ZDUxZmEzOTU4MDI2Y2RkZDkzYmJkODc0ZTFiZGFlMTQ5YTEyYWM2ZjAxNTJlYTI1Mzk0MmVmYzk4OWNcIjpbXCI1ZTRhOGQ1MWZhMzk1ODAyNmNkZGQ5M2JiZDg3NGUxYmRhZTE0OWExMmFjNmYwMTUyZWEyNTM5NDJlZmM5ODljXCJdLFwiMWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZlwiOltcIjFjODM1ZDRlNjc5MTdmZDI1NzgxYjExZGIxYzEyZWZiYzQyOTZjNWM3ZmU5ODFkMzViYmNmNGE0NmE1MzQ0MWZcIl0sXCI4OWYwYTg0MGUzYmFiNGMzMmUwN2IxNDg2MmYwYTBmNDE0NTQzZGEwMzZlY2YzMzlkM2VkN2VjOTNmYTRhNDFiXCI6W1wiODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYlwiXSxcImZhYjkyYzQ3Y2NiMWZkZDI1MTczZTI5ODFlYmIyOWRlOTg5YWNlYTg4NzkyZTM0Y2M4NzI5OGY2YTE1Nzg4NDJcIjpbXCJmYWI5MmM0N2NjYjFmZGQyNTE3M2UyOTgxZWJiMjlkZTk4OWFjZWE4ODc5MmUzNGNjODcyOThmNmExNTc4ODQyXCJdLFwiamVmZlwiOltcImM1MzIxN2JiMDUzYjgyN2I1ZmJiYjMyMmZjZWQ2N2E4NjI5OGVjNDBhNTlhZWVmMTViMjE5MGEwNWFkMGE2YmRcIl0sXCJzdHVhcnRcIjpbXCIwZTMxODBkZDRhZTlkNDM4NWEyMWQ3Y2E5NWNjNzIyOWIwZjZiMmNhOWUwZjQ4NjFkZDRlZWQ2ODUwMDRkZjY2XCJdLFwibGVhaFwiOltcIjIxNjY0MzEzN2ZiNWY2YTEyN2RiYjEwNjM3MDJjYmI3YzFmMTUzNDUxYTFhZDRhZmE5ZjkyZTc3NDQ3Y2MzMzBcIl0sXCIxNTRkNmYyMzk4NjRjMTljNDNlZjM3N2MwM2NjOGRmOGUwZDFlNzkyYTE0M2EwMTQyMzUwMzAyOGNlOTYzYWZhXCI6W1wiMTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYVwiXSxcIjNlODMyMTNiZWRmNmJlMGFhZjhlZDNmOGU3MmZmYjlhMjQwOTMwYjg2OThiOTY0NmU4ZDkxM2I2MWM5M2U0YWJcIjpbXCIzZTgzMjEzYmVkZjZiZTBhYWY4ZWQzZjhlNzJmZmI5YTI0MDkzMGI4Njk4Yjk2NDZlOGQ5MTNiNjFjOTNlNGFiXCJdLFwid2lsbFwiOltcIjgzMGFkNzczNTEwYWIwZjVhMGQ0NTY0YjdiMzFkMmIwYjFiYTdmZDVhMTE2ZjY2NTk4YTFjNjNjYzIxNDJmZDVcIl0sXCJsaW5kYVwiOltcImUxMDAyZGIwODk0Mjk5YmIzNzIzOGJhYjAyMTcwMTgwYzBhZTU2ZjU5MzIxNjliYjJmY2Y3NTYwNTlmZWExNzVcIl0sXCI1NTQ3NTRmNDhiMTZkZjI0YjU1MmY2ODMyZGRhMDkwNjQyZWQ5NjU4NTU5ZmVmOWYzZWUxYmI0NjM3ZWE3Yzk0XCI6W1wiNTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NFwiXSxcIjRhN2MyMGQwODdkZjc2NzUzZTI4ZDc2NWViODRlMTMzODQ3OWRkNmRmMTIxZGRkYTNlNTk1NzZkMGEzMmE1YmZcIjpbXCI0YTdjMjBkMDg3ZGY3Njc1M2UyOGQ3NjVlYjg0ZTEzMzg0NzlkZDZkZjEyMWRkZGEzZTU5NTc2ZDBhMzJhNWJmXCJdLFwiaGVla3l1blwiOltcImRmYjE2YjEzZTQwMzJhNjg3OGZkOTg1MDZiMjJjYjBkNmU1OTMyYzU0MWU2NTZiN2VlNWQ2OWQ3MmU2ZWI3NmVcIl19LFwiY29kZVwiOlwiKGNvaW4uY29pbmJhc2UgXFxcImFuYXN0YXNpYVxcXCIgKHJlYWQta2V5c2V0IFxcXCJhbmFzdGFzaWFcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJlbWlseVxcXCIgKHJlYWQta2V5c2V0IFxcXCJlbWlseVxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImhlZWt5dW5cXFwiIChyZWFkLWtleXNldCBcXFwiaGVla3l1blxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImplZmZcXFwiIChyZWFkLWtleXNldCBcXFwiamVmZlxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImxlYWhcXFwiIChyZWFkLWtleXNldCBcXFwibGVhaFxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcImxpbmRhXFxcIiAocmVhZC1rZXlzZXQgXFxcImxpbmRhXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwic3R1YXJ0XFxcIiAocmVhZC1rZXlzZXQgXFxcInN0dWFydFxcXCIpIDEwMDAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwid2lsbFxcXCIgKHJlYWQta2V5c2V0IFxcXCJ3aWxsXFxcIikgMTAwMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJLYWRlbmFcXFwiIChrZXlzZXQtcmVmLWd1YXJkIFxcXCJLYWRlbmFcXFwiKSAxMDAwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6NGE3YzIwZDA4N2RmNzY3NTNlMjhkNzY1ZWI4NGUxMzM4NDc5ZGQ2ZGYxMjFkZGRhM2U1OTU3NmQwYTMyYTViZlxcXCIgKHJlYWQta2V5c2V0IFxcXCI0YTdjMjBkMDg3ZGY3Njc1M2UyOGQ3NjVlYjg0ZTEzMzg0NzlkZDZkZjEyMWRkZGEzZTU5NTc2ZDBhMzJhNWJmXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazpmYWI5MmM0N2NjYjFmZGQyNTE3M2UyOTgxZWJiMjlkZTk4OWFjZWE4ODc5MmUzNGNjODcyOThmNmExNTc4ODQyXFxcIiAocmVhZC1rZXlzZXQgXFxcImZhYjkyYzQ3Y2NiMWZkZDI1MTczZTI5ODFlYmIyOWRlOTg5YWNlYTg4NzkyZTM0Y2M4NzI5OGY2YTE1Nzg4NDJcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOmNiYjk0YjEyZjU1YmQ1NDBhNWFhNTA3NjM1MTExOTM4ZjIyODJjMjg5MWI3OGMxM2U0NjJmYTAxOGM0MTQ1ZDhcXFwiIChyZWFkLWtleXNldCBcXFwiY2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOFxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6ODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYlxcXCIgKHJlYWQta2V5c2V0IFxcXCI4OWYwYTg0MGUzYmFiNGMzMmUwN2IxNDg2MmYwYTBmNDE0NTQzZGEwMzZlY2YzMzlkM2VkN2VjOTNmYTRhNDFiXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazo0YzczNTY2YjVkOGZhNGNkMmEyNjIwZjdiMmJjNTcyODRjN2ZjNWM0OGY4ZjBkYjJiZjE2NzVjYWQwOGRjNGFmXFxcIiAocmVhZC1rZXlzZXQgXFxcIjRjNzM1NjZiNWQ4ZmE0Y2QyYTI2MjBmN2IyYmM1NzI4NGM3ZmM1YzQ4ZjhmMGRiMmJmMTY3NWNhZDA4ZGM0YWZcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOjFjODM1ZDRlNjc5MTdmZDI1NzgxYjExZGIxYzEyZWZiYzQyOTZjNWM3ZmU5ODFkMzViYmNmNGE0NmE1MzQ0MWZcXFwiIChyZWFkLWtleXNldCBcXFwiMWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZlxcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6NTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NFxcXCIgKHJlYWQta2V5c2V0IFxcXCI1NTQ3NTRmNDhiMTZkZjI0YjU1MmY2ODMyZGRhMDkwNjQyZWQ5NjU4NTU5ZmVmOWYzZWUxYmI0NjM3ZWE3Yzk0XFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazozZTgzMjEzYmVkZjZiZTBhYWY4ZWQzZjhlNzJmZmI5YTI0MDkzMGI4Njk4Yjk2NDZlOGQ5MTNiNjFjOTNlNGFiXFxcIiAocmVhZC1rZXlzZXQgXFxcIjNlODMyMTNiZWRmNmJlMGFhZjhlZDNmOGU3MmZmYjlhMjQwOTMwYjg2OThiOTY0NmU4ZDkxM2I2MWM5M2U0YWJcXFwiKSAxMDAwMDAwMC4wKVxcbihjb2luLmNvaW5iYXNlIFxcXCJrOjVlNGE4ZDUxZmEzOTU4MDI2Y2RkZDkzYmJkODc0ZTFiZGFlMTQ5YTEyYWM2ZjAxNTJlYTI1Mzk0MmVmYzk4OWNcXFwiIChyZWFkLWtleXNldCBcXFwiNWU0YThkNTFmYTM5NTgwMjZjZGRkOTNiYmQ4NzRlMWJkYWUxNDlhMTJhYzZmMDE1MmVhMjUzOTQyZWZjOTg5Y1xcXCIpIDEwMDAwMDAwLjApXFxuKGNvaW4uY29pbmJhc2UgXFxcIms6MTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYVxcXCIgKHJlYWQta2V5c2V0IFxcXCIxNTRkNmYyMzk4NjRjMTljNDNlZjM3N2MwM2NjOGRmOGUwZDFlNzkyYTE0M2EwMTQyMzUwMzAyOGNlOTYzYWZhXFxcIikgMTAwMDAwMDAuMClcXG4oY29pbi5jb2luYmFzZSBcXFwiazo0OWI0MTAzNGFiOWJhMGI3ZmQ5MmZkNTNlYjc5ZDdmZDNkNjAxMTkxYTE1MjY5NjgyODMwZjljOTJlMzY4OGFkXFxcIiAocmVhZC1rZXlzZXQgXFxcIjQ5YjQxMDM0YWI5YmEwYjdmZDkyZmQ1M2ViNzlkN2ZkM2Q2MDExOTFhMTUyNjk2ODI4MzBmOWM5MmUzNjg4YWRcXFwiKSAxMDAwMDAwMC4wKVwifX0sXCJzaWduZXJzXCI6W10sXCJtZXRhXCI6e1wiY3JlYXRpb25UaW1lXCI6MCxcInR0bFwiOjE3MjgwMCxcImdhc0xpbWl0XCI6MCxcImNoYWluSWRcIjpcIlwiLFwiZ2FzUHJpY2VcIjowLFwic2VuZGVyXCI6XCJcIn0sXCJub25jZVwiOlwidGVzdG5ldC1ncmFudHMtTlwifSJ9", unsafeFromText "eyJnYXMiOjAsInJlc3VsdCI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6IldyaXRlIHN1Y2NlZWRlZCJ9LCJyZXFLZXkiOiJ4NkpudzhheFphUktNWmFUS2ZPMDZ1czJBNGtFMERLajBGbkFURldVZVdVIiwibG9ncyI6Inkwcl9hODB2QzJhc2RsZW9GWVhXT1dHVlR2QVROWUlYRFR2MHRkTTgtZ28iLCJldmVudHMiOlt7InBhcmFtcyI6WyIiLCJhbmFzdGFzaWEiLDEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJlbWlseSIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsImhlZWt5dW4iLDEwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJqZWZmIiwxMDAwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwibGVhaCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsImxpbmRhIiwxMDAwMDAwMF0sIm5hbWUiOiJUUkFOU0ZFUiIsIm1vZHVsZSI6eyJuYW1lc3BhY2UiOm51bGwsIm5hbWUiOiJjb2luIn0sIm1vZHVsZUhhc2giOiIzRGV2UzNPZEpEWmtYTzVWd0ktUGNsd0tfZ1RRMzdFOVZmbDhVbUtpeGZzIn0seyJwYXJhbXMiOlsiIiwic3R1YXJ0IiwxMDAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJ3aWxsIiwxMDAwMDAwMDAwXSwibmFtZSI6IlRSQU5TRkVSIiwibW9kdWxlIjp7Im5hbWVzcGFjZSI6bnVsbCwibmFtZSI6ImNvaW4ifSwibW9kdWxlSGFzaCI6IjNEZXZTM09kSkRaa1hPNVZ3SS1QY2x3S19nVFEzN0U5VmZsOFVtS2l4ZnMifSx7InBhcmFtcyI6WyIiLCJLYWRlbmEiLDEwMDAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NGE3YzIwZDA4N2RmNzY3NTNlMjhkNzY1ZWI4NGUxMzM4NDc5ZGQ2ZGYxMjFkZGRhM2U1OTU3NmQwYTMyYTViZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6ZmFiOTJjNDdjY2IxZmRkMjUxNzNlMjk4MWViYjI5ZGU5ODlhY2VhODg3OTJlMzRjYzg3Mjk4ZjZhMTU3ODg0MiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6Y2JiOTRiMTJmNTViZDU0MGE1YWE1MDc2MzUxMTE5MzhmMjI4MmMyODkxYjc4YzEzZTQ2MmZhMDE4YzQxNDVkOCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6ODlmMGE4NDBlM2JhYjRjMzJlMDdiMTQ4NjJmMGEwZjQxNDU0M2RhMDM2ZWNmMzM5ZDNlZDdlYzkzZmE0YTQxYiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NGM3MzU2NmI1ZDhmYTRjZDJhMjYyMGY3YjJiYzU3Mjg0YzdmYzVjNDhmOGYwZGIyYmYxNjc1Y2FkMDhkYzRhZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6MWM4MzVkNGU2NzkxN2ZkMjU3ODFiMTFkYjFjMTJlZmJjNDI5NmM1YzdmZTk4MWQzNWJiY2Y0YTQ2YTUzNDQxZiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NTU0NzU0ZjQ4YjE2ZGYyNGI1NTJmNjgzMmRkYTA5MDY0MmVkOTY1ODU1OWZlZjlmM2VlMWJiNDYzN2VhN2M5NCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6M2U4MzIxM2JlZGY2YmUwYWFmOGVkM2Y4ZTcyZmZiOWEyNDA5MzBiODY5OGI5NjQ2ZThkOTEzYjYxYzkzZTRhYiIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NWU0YThkNTFmYTM5NTgwMjZjZGRkOTNiYmQ4NzRlMWJkYWUxNDlhMTJhYzZmMDE1MmVhMjUzOTQyZWZjOTg5YyIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6MTU0ZDZmMjM5ODY0YzE5YzQzZWYzNzdjMDNjYzhkZjhlMGQxZTc5MmExNDNhMDE0MjM1MDMwMjhjZTk2M2FmYSIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9LHsicGFyYW1zIjpbIiIsIms6NDliNDEwMzRhYjliYTBiN2ZkOTJmZDUzZWI3OWQ3ZmQzZDYwMTE5MWExNTI2OTY4MjgzMGY5YzkyZTM2ODhhZCIsMTAwMDAwMDBdLCJuYW1lIjoiVFJBTlNGRVIiLCJtb2R1bGUiOnsibmFtZXNwYWNlIjpudWxsLCJuYW1lIjoiY29pbiJ9LCJtb2R1bGVIYXNoIjoiM0RldlMzT2RKRFprWE81VndJLVBjbHdLX2dUUTM3RTlWZmw4VW1LaXhmcyJ9XSwibWV0YURhdGEiOm51bGwsImNvbnRpbnVhdGlvbiI6bnVsbCwidHhJZCI6OH0") ] diff --git a/src/Chainweb/Pact/Backend/Utils.hs b/src/Chainweb/Pact/Backend/Utils.hs index 5e149469c..88ccc1cd3 100644 --- a/src/Chainweb/Pact/Backend/Utils.hs +++ b/src/Chainweb/Pact/Backend/Utils.hs @@ -55,6 +55,7 @@ module Chainweb.Pact.Backend.Utils , convRowKeyCore , convPactId , convPactIdCore + , convHashedModuleName , convSavepointName , expectSingleRowCol , expectSingle @@ -127,17 +128,11 @@ import qualified Pact.Types.Persistence as Pact4 -- -------------------------------------------------------------------------- -- -- SQ3.Utf8 Encodings instance AsString (PCore.Domain k v b i) where - asString (PCore.DUserTables t) = asString t - asString PCore.DKeySets = "SYS:KeySets" - asString PCore.DModules = "SYS:Modules" - asString PCore.DNamespaces = "SYS:Namespaces" - asString PCore.DDefPacts = "SYS:Pacts" - asString PCore.DModuleSource = "SYS:ModuleSources" + asString t = PCore.renderDomain t instance AsString (PCore.TableName) where - asString (PCore.TableName tn (PCore.ModuleName mn ns)) = - maybe "" (\(PCore.NamespaceName n) -> n <> ".") ns <> mn <> "_" <> tn + asString t = PCore.renderTableName t toUtf8 :: T.Text -> SQ3.Utf8 toUtf8 = SQ3.Utf8 . T.encodeUtf8 @@ -209,6 +204,9 @@ convPactIdCore pid = "PactId \"" <> toUtf8 (PCore.renderDefPactId pid) <> "\"" convSavepointName :: SavepointName -> SQ3.Utf8 convSavepointName = toTextUtf8 +convHashedModuleName :: PCore.HashedModuleName -> SQ3.Utf8 +convHashedModuleName = toUtf8 . PCore.renderHashedModuleName + -- -------------------------------------------------------------------------- -- -- diff --git a/src/Chainweb/Pact4/Backend/ChainwebPactDb.hs b/src/Chainweb/Pact4/Backend/ChainwebPactDb.hs index 5e9c8822b..29bed00eb 100644 --- a/src/Chainweb/Pact4/Backend/ChainwebPactDb.hs +++ b/src/Chainweb/Pact4/Backend/ChainwebPactDb.hs @@ -266,7 +266,7 @@ forModuleNameFix f = view blockHandlerModuleNameFix >>= f tableExistsInDbAtHeight :: Utf8 -> BlockHeight -> BlockHandler logger Bool tableExistsInDbAtHeight tableName bh = do let knownTbls = - ["SYS:Pacts", "SYS:Modules", "SYS:KeySets", "SYS:Namespaces"] + ["SYS:Pacts", "SYS:Modules", "SYS:KeySets", "SYS:Namespaces", "SYS:ModuleSources"] if tableName `elem` knownTbls then return True else callDb "tableExists" $ \db -> do @@ -793,6 +793,7 @@ rewindDbToGenesis db = do exec_ db "DELETE FROM [SYS:Modules];" exec_ db "DELETE FROM [SYS:Namespaces];" exec_ db "DELETE FROM [SYS:Pacts];" + exec_ db "DELETE FROM [SYS:ModuleSources];" tblNames <- qry_ db "SELECT tablename FROM VersionedTableCreation;" [RText] forM_ tblNames $ \t -> case t of [SText tn] -> exec_ db ("DROP TABLE [" <> tn <> "];") @@ -862,6 +863,7 @@ rewindDbToBlock db bh endingTxId = do exec' db "DELETE FROM [SYS:Modules] WHERE txid >= ?" tx exec' db "DELETE FROM [SYS:Namespaces] WHERE txid >= ?" tx exec' db "DELETE FROM [SYS:Pacts] WHERE txid >= ?" tx + exec' db "DELETE FROM [SYS:ModuleSources] WHERE txid >= ?" tx where tx = [SInt $! fromIntegral endingTxId] diff --git a/src/Chainweb/Pact5/Backend/ChainwebPactDb.hs b/src/Chainweb/Pact5/Backend/ChainwebPactDb.hs index 9ca909725..693095f0e 100644 --- a/src/Chainweb/Pact5/Backend/ChainwebPactDb.hs +++ b/src/Chainweb/Pact5/Backend/ChainwebPactDb.hs @@ -76,6 +76,7 @@ import Pact.Core.Names import Pact.Core.Builtin import Pact.Core.Guards import Pact.Core.Errors +import Pact.Core.Gas -- chainweb @@ -281,14 +282,15 @@ doReadRow mlim d k = forModuleNameFix $ \mnFix -> -- TODO: This is incomplete (the modules case), due to namespace -- resolution concerns DModules -> let f = (\v -> (view document <$> _decodeModuleData serialisePact_lineinfo v)) in - lookupWithKey (convModuleNameCore mnFix k) f (noCache f) + lookupWithKey (convModuleNameCore mnFix k) f (noCacheChargeModuleSize f) DNamespaces -> let f = (\v -> (view document <$> _decodeNamespace serialisePact_lineinfo v)) in lookupWithKey (convNamespaceNameCore k) f (noCache f) DUserTables _ -> let f = (\v -> (view document <$> _decodeRowData serialisePact_lineinfo v)) in lookupWithKey (convRowKeyCore k) f (noCache f) DDefPacts -> let f = (\v -> (view document <$> _decodeDefPactExec serialisePact_lineinfo v)) in lookupWithKey (convPactIdCore k) f (noCache f) - DModuleSource -> internalError "doReadRow: DModuleSource not supported" + DModuleSource -> let f = (\v -> (view document <$> _decodeModuleCode serialisePact_lineinfo v)) in + lookupWithKey (convHashedModuleName k) f (noCache f) where tablename@(Utf8 tableNameBS) = domainTableNameCore d @@ -343,6 +345,15 @@ doReadRow mlim d k = forModuleNameFix $ \mnFix -> "doReadRow: Expected (at most) a single result, but got: " <> T.pack (show err) + noCacheChargeModuleSize + :: (BS.ByteString -> Maybe (ModuleData CoreBuiltin Info)) + -> Utf8 + -> BS.ByteString + -> MaybeT (BlockHandler logger) (ModuleData CoreBuiltin Info) + noCacheChargeModuleSize f _key rowdata = do + lift $ BlockHandler $ lift $ lift (chargeGasM (GModuleOp (MOpLoadModule (BS.length rowdata)))) + MaybeT $ return $! f rowdata + noCache :: (BS.ByteString -> Maybe v) -> Utf8 @@ -372,7 +383,7 @@ writeSys d k v = do DModules -> (convModuleNameCore mnFix k, _encodeModuleData serialisePact_lineinfo v) DNamespaces -> (convNamespaceNameCore k, _encodeNamespace serialisePact_lineinfo v) DDefPacts -> (convPactIdCore k, _encodeDefPactExec serialisePact_lineinfo v) - DModuleSource -> error "writeSys: DModuleSource not supported" + DModuleSource -> (convHashedModuleName k, _encodeModuleCode serialisePact_lineinfo v) DUserTables _ -> error "impossible" recordPendingUpdate kk (toUtf8 tablename) txid vv recordTxLog d kk vv @@ -492,7 +503,11 @@ doKeys mlim d = do Just v -> pure v DNamespaces -> pure $ map NamespaceName allKeys DDefPacts -> pure $ map DefPactId allKeys - DModuleSource -> internalError "doKeys: DModuleSource not supported" + DModuleSource -> do + let parsed = map parseHashedModuleName allKeys + case sequence parsed of + Just v -> pure v + Nothing -> internalError $ "doKeys.DModuleSources: unexpected decoding" DUserTables _ -> pure $ map RowKey allKeys where diff --git a/test/Chainweb/Test/Pact5/TransactionExecTest.hs b/test/Chainweb/Test/Pact5/TransactionExecTest.hs index 45bb4ea1c..16120c6be 100644 --- a/test/Chainweb/Test/Pact5/TransactionExecTest.hs +++ b/test/Chainweb/Test/Pact5/TransactionExecTest.hs @@ -352,12 +352,12 @@ runPayloadShouldReturnEvalResultRelatedToTheInputCommand rdb = readFromAfterGene liftIO $ assertEqual "eval result" - (MilliGas 2_000, Right EvalResult + (MilliGas 3_000, Right EvalResult { _erOutput = [InterpretValue (PInteger 15) def] , _erEvents = [] , _erLogs = [] , _erExec = Nothing - , _erGas = Gas 2 + , _erGas = Gas 3 , _erLoadedModules = mempty , _erTxId = Just (TxId 9) , _erLogGas = Nothing @@ -388,7 +388,7 @@ applyLocalSpec rdb = readFromAfterGenesis v rdb $ [ pt _crEvents ? equals ? [] , pt _crResult ? equals ? PactResultOk (PInteger 15) -- reflects payload gas usage - , pt _crGas ? equals ? Gas 2 + , pt _crGas ? traceFailShow ? equals ? Gas 3 , pt _crContinuation ? equals ? Nothing , pt _crLogs ? equals ? Just [] , pt _crMetaData ? match _Just continue @@ -419,7 +419,7 @@ applyCmdSpec rdb = readFromAfterGenesis v rdb $ , _cbGasLimit = GasLimit (Gas 500) } let txCtx = TxContext {_tcParentHeader = ParentHeader (gh v cid), _tcMiner = noMiner} - let expectedGasConsumed = 162 + let expectedGasConsumed = 155 applyCmd stdoutDummyLogger Nothing pactDb txCtx noSPVSupport (Gas 1) (view payloadObj <$> cmd) >>= match _Right ? satAll @@ -427,11 +427,11 @@ applyCmdSpec rdb = readFromAfterGenesis v rdb $ [ pt _crEvents ? soleElement ? event (equals "TRANSFER") - (equals [PString "sender00", PString "NoMiner", PDecimal 324.0]) + (traceFailShow $ equals [PString "sender00", PString "NoMiner", PDecimal 310.0]) (equals coinModuleName) , pt _crResult ? equals ? PactResultOk (PInteger 15) -- reflects buyGas gas usage, as well as that of the payload - , pt _crGas ? equals ? Gas expectedGasConsumed + , pt _crGas ? traceFailShow ? equals ? Gas expectedGasConsumed , pt _crContinuation ? equals ? Nothing , pt _crLogs ? match _Just ? PT.list @@ -490,12 +490,12 @@ applyCmdVerifierSpec rdb = readFromAfterGenesis v rdb $ [ pt _crEvents ? PT.list [ event (equals "TRANSFER") - (equals [PString "sender00", PString "NoMiner", PDecimal 120322]) + (traceFailShow ? equals [PString "sender00", PString "NoMiner", PDecimal 730]) (equals coinModuleName) ] - , pt _crResult ? equals ? PactResultOk (PString "Loaded module free.m, hash HcrMpd9fcNbb6fRz07frqtmke2FqRvtXTuV-xTE_NIk") + , pt _crResult ? traceFailShow ? equals ? PactResultOk (PString "Loaded module free.m, hash Uj0lQPPu9CKvw13K4VP4DZoaPKOphk_-vuq823hLSLo") -- reflects buyGas gas usage, as well as that of the payload - , pt _crGas ? equals ? Gas 60161 + , pt _crGas ? traceFailShow ? equals ? Gas 365 , pt _crContinuation ? equals ? Nothing ] @@ -555,12 +555,12 @@ applyCmdVerifierSpec rdb = readFromAfterGenesis v rdb $ [ pt _crEvents ? PT.list [ event (equals "TRANSFER") - (equals [PString "sender00", PString "NoMiner", PDecimal 342]) + (traceFailShow ? equals [PString "sender00", PString "NoMiner", PDecimal 326]) (equals coinModuleName) ] , pt _crResult ? equals ? PactResultOk (PInteger 1) -- reflects buyGas gas usage, as well as that of the payload - , pt _crGas ? equals ? Gas 171 + , pt _crGas ? traceFailShow ? equals ? Gas 163 , pt _crContinuation ? equals ? Nothing , pt _crMetaData ? equals ? Nothing ] @@ -643,7 +643,7 @@ applyCmdCoinTransfer rdb = readFromAfterGenesis v rdb $ do , _cbGasLimit = GasLimit (Gas 600) } -- Note: if/when core changes gas prices, tweak here. - let expectedGasConsumed = 514 + let expectedGasConsumed = 420 applyCmd stdoutDummyLogger Nothing pactDb txCtx noSPVSupport (Gas 1) (view payloadObj <$> cmd) >>= match _Right ? satAll @@ -655,12 +655,12 @@ applyCmdCoinTransfer rdb = readFromAfterGenesis v rdb $ do (equals coinModuleName) , event (equals "TRANSFER") - (traceFailShow (equals [PString "sender00", PString "NoMiner", PDecimal 1028])) + (traceFailShow (equals [PString "sender00", PString "NoMiner", PDecimal 840])) (equals coinModuleName) ] , pt _crResult ? equals ? PactResultOk (PString "Write succeeded") -- reflects buyGas gas usage, as well as that of the payload - , pt _crGas ? equals ? Gas expectedGasConsumed + , pt _crGas ? traceFailShow ? equals ? Gas expectedGasConsumed , pt _crContinuation ? equals ? Nothing , pt _crLogs ? match _Just ? PT.list @@ -691,7 +691,7 @@ applyCmdCoinTransfer rdb = readFromAfterGenesis v rdb $ do ] endSender00Bal <- readBal pactDb "sender00" - assertEqual "ending balance should be less gas money" (Just 99_998_552) endSender00Bal + assertEqual "ending balance should be less gas money" (Just 99_998_740) endSender00Bal endMinerBal <- readBal pactDb "NoMiner" assertEqual "miner balance after redeeming gas should have increased" (Just $ fromMaybe 0 startMinerBal + (fromIntegral expectedGasConsumed * 2)) @@ -736,7 +736,7 @@ testCoinUpgrade rdb = readFromAfterGenesis vUpgrades rdb $ do applyUpgrades stdoutDummyLogger pactDb txCtx getCoinModuleHash txCtx pactDb - >>= equals ? PactResultOk (PString "xMiQPBR-dj7VT1RTAM72kyhtz-V-PctgvKsgDRmKUcM") + >>= traceFailShow ? equals ? PactResultOk (PString "3DevS3OdJDZkXO5VwI-PclwK_gTQ37E9Vfl8UmKixfs") where getCoinModuleHash txCtx pactDb = do cmd <- buildCwCmd vUpgrades defaultCmd @@ -781,7 +781,7 @@ testEventOrdering rdb = readFromAfterGenesis v rdb $ (equals coinModuleName) , event (equals "TRANSFER") - (equals [PString "sender00", PString "NoMiner", PDecimal 1734]) + (traceFailShow $ equals [PString "sender00", PString "NoMiner", PDecimal 1376]) (equals coinModuleName) ] ]