@galacticcouncil/descriptors
Version:
Hydration papi (polkadot-api) descriptors
1 lines • 731 kB
JavaScript
const binMeta = "bWV0YRBlEAAMHHNwX2NvcmUYY3J5cHRvLEFjY291bnRJZDMyAAAEAAQBIFt1ODsgMzJdAAAEAAADIAAAAAgACAAABQMADAg8aHlkcmFkeF9ydW50aW1lLFJ1bnRpbWVDYWxsAAENARhTeXN0ZW0EABABrQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8U3lzdGVtLCBSdW50aW1lPgABACRUaW1lc3RhbXAEADABuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGltZXN0YW1wLCBSdW50aW1lPgADACBCYWxhbmNlcwQAOAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCYWxhbmNlcywgUnVudGltZT4ABwBcTXVsdGlUcmFuc2FjdGlvblBheW1lbnQEAFAB8QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8TXVsdGlUcmFuc2FjdGlvblBheW1lbnQsIFJ1bnRpbWU+AMsAIFRyZWFzdXJ5BABoAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRyZWFzdXJ5LCBSdW50aW1lPgALABxVdGlsaXR5BAB4AbEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFV0aWxpdHksIFJ1bnRpbWU+AA0AIFByZWltYWdlBADoAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFByZWltYWdlLCBSdW50aW1lPgAPACBJZGVudGl0eQQA8AG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJZGVudGl0eSwgUnVudGltZT4AEQAkRGVtb2NyYWN5BAClAQG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxEZW1vY3JhY3ksIFJ1bnRpbWU+ABMASFRlY2huaWNhbENvbW1pdHRlZQQAyQEB3QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VGVjaG5pY2FsQ29tbWl0dGVlLCBSdW50aW1lPgAZABRQcm94eQQA0QEBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UHJveHksIFJ1bnRpbWU+AB0AIE11bHRpc2lnBADdAQG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aXNpZywgUnVudGltZT4AHwAcVW5pcXVlcwQA6QEBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VW5pcXVlcywgUnVudGltZT4AIABIU3RhdGVUcmllTWlncmF0aW9uBAAFAgHdAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGF0ZVRyaWVNaWdyYXRpb24sIFJ1bnRpbWU+ACMAQENvbnZpY3Rpb25Wb3RpbmcEAB0CAdUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbnZpY3Rpb25Wb3RpbmcsIFJ1bnRpbWU+ACQAJFJlZmVyZW5kYQQAMQIBuQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVmZXJlbmRhLCBSdW50aW1lPgAlACRXaGl0ZWxpc3QEADkCAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFdoaXRlbGlzdCwgUnVudGltZT4AJwAoRGlzcGF0Y2hlcgQAPQIBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RGlzcGF0Y2hlciwgUnVudGltZT4AKAA0QXNzZXRSZWdpc3RyeQQAQQIByQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8QXNzZXRSZWdpc3RyeSwgUnVudGltZT4AMwAYQ2xhaW1zBABlAgGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxDbGFpbXMsIFJ1bnRpbWU+ADUAOEdlbmVzaXNIaXN0b3J5BABtAgHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxHZW5lc2lzSGlzdG9yeSwgUnVudGltZT4ANwAgT21uaXBvb2wEAHECAbUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9tbmlwb29sLCBSdW50aW1lPgA7AEBUcmFuc2FjdGlvblBhdXNlBACJAgHVAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxUcmFuc2FjdGlvblBhdXNlLCBSdW50aW1lPgA8ABhEdXN0ZXIEAI0CAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER1c3RlciwgUnVudGltZT4APQBMT21uaXBvb2xXYXJlaG91c2VMTQQAkQIB4QFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T21uaXBvb2xXYXJlaG91c2VMTSwgUnVudGltZT4APgBcT21uaXBvb2xMaXF1aWRpdHlNaW5pbmcEAJUCAfEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9tbmlwb29sTGlxdWlkaXR5TWluaW5nLCBSdW50aW1lPgA/AAxPVEMEAMkCAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPE9UQywgUnVudGltZT4AQAA4Q2lyY3VpdEJyZWFrZXIEAM0CAc0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENpcmN1aXRCcmVha2VyLCBSdW50aW1lPgBBABhSb3V0ZXIEAOECAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJvdXRlciwgUnVudGltZT4AQwAsRHluYW1pY0ZlZXMEAPkCAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPER5bmFtaWNGZWVzLCBSdW50aW1lPgBEABxTdGFraW5nBAAFAwGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFraW5nLCBSdW50aW1lPgBFAChTdGFibGVzd2FwBAAJAwG9AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTdGFibGVzd2FwLCBSdW50aW1lPgBGABRCb25kcwQALQMBqQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Qm9uZHMsIFJ1bnRpbWU+AEcAOE90Y1NldHRsZW1lbnRzBAAxAwHNAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxPdGNTZXR0bGVtZW50cywgUnVudGltZT4ASAAMTEJQBAA1AwGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxMQlAsIFJ1bnRpbWU+AEkADFhZSwQAQQMBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFlLLCBSdW50aW1lPgBKACRSZWZlcnJhbHMEAEUDAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFJlZmVycmFscywgUnVudGltZT4ASwAsTGlxdWlkYXRpb24EAFUDAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPExpcXVpZGF0aW9uLCBSdW50aW1lPgBMAAxIU00EAFkDAaEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEhTTSwgUnVudGltZT4AUgAYU2lnbmV0BAB1AwGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTaWduZXQsIFJ1bnRpbWU+AFQAMEV0aERpc3BlbnNlcgQAtQMBxQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RXRoRGlzcGVuc2VyLCBSdW50aW1lPgBVADBMYXp5RXhlY3V0b3IEAL0DAcUBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPExhenlFeGVjdXRvciwgUnVudGltZT4AVgAYSW50ZW50BADBAwGtAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxJbnRlbnQsIFJ1bnRpbWU+AFcADElDRQQA4QMBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8SUNFLCBSdW50aW1lPgBYABhUb2tlbnMEABUEAa0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFRva2VucywgUnVudGltZT4ATQAoQ3VycmVuY2llcwQAGQQBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q3VycmVuY2llcywgUnVudGltZT4ATwAcVmVzdGluZwQAIQQBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8VmVzdGluZywgUnVudGltZT4AUQAMRVZNBAAtBAGhAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxFVk0sIFJ1bnRpbWU+AFoAIEV0aGVyZXVtBABJBAG1AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxFdGhlcmV1bSwgUnVudGltZT4AXAAsRVZNQWNjb3VudHMEAHkEAcEBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEVWTUFjY291bnRzLCBSdW50aW1lPgBdAEhYWUtMaXF1aWRpdHlNaW5pbmcEAH0EAd0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhZS0xpcXVpZGl0eU1pbmluZywgUnVudGltZT4AXwA4WFlLV2FyZWhvdXNlTE0EAI0EAc0Bc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFhZS1dhcmVob3VzZUxNLCBSdW50aW1lPgBgADhSZWxheUNoYWluSW5mbwQAkQQBzQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8UmVsYXlDaGFpbkluZm8sIFJ1bnRpbWU+AMkADERDQQQAlQQBoQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8RENBLCBSdW50aW1lPgBCACRTY2hlZHVsZXIEAKEEAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFNjaGVkdWxlciwgUnVudGltZT4ABQA8UGFyYWNoYWluU3lzdGVtBAClBAHRAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQYXJhY2hhaW5TeXN0ZW0sIFJ1bnRpbWU+AGcANFBhcmFjaGFpbkluZm8EAPEEAckBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPFBhcmFjaGFpbkluZm8sIFJ1bnRpbWU+AGkALFBvbGthZG90WGNtBAD1BAHBAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxQb2xrYWRvdFhjbSwgUnVudGltZT4AawAoQ3VtdWx1c1hjbQQAtQYBvQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8Q3VtdWx1c1hjbSwgUnVudGltZT4AbQAwTWVzc2FnZVF1ZXVlBAC5BgHFAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNZXNzYWdlUXVldWUsIFJ1bnRpbWU+AHIAUE11bHRpQmxvY2tNaWdyYXRpb25zBADBBgHlAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxNdWx0aUJsb2NrTWlncmF0aW9ucywgUnVudGltZT4AdAAcT3JtbFhjbQQA4QYBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8T3JtbFhjbSwgUnVudGltZT4AhwAcWFRva2VucwQA5QYBsQFzZWxmOjpzcF9hcGlfaGlkZGVuX2luY2x1ZGVzX2NvbnN0cnVjdF9ydW50aW1lOjpoaWRkZW5faW5jbHVkZTo6ZGlzcGF0Y2gKOjpDYWxsYWJsZUNhbGxGb3I8WFRva2VucywgUnVudGltZT4AiQBEQ29sbGF0b3JTZWxlY3Rpb24EAPEGAdkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPENvbGxhdG9yU2VsZWN0aW9uLCBSdW50aW1lPgCjABxTZXNzaW9uBAD1BgGxAXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxTZXNzaW9uLCBSdW50aW1lPgClACRFbWFPcmFjbGUEAAEHAbkBc2VsZjo6c3BfYXBpX2hpZGRlbl9pbmNsdWRlc19jb25zdHJ1Y3RfcnVudGltZTo6aGlkZGVuX2luY2x1ZGU6OmRpc3BhdGNoCjo6Q2FsbGFibGVDYWxsRm9yPEVtYU9yYWNsZSwgUnVudGltZT4AygAkQnJvYWRjYXN0BAAFBwG5AXNlbGY6OnNwX2FwaV9oaWRkZW5faW5jbHVkZXNfY29uc3RydWN0X3J1bnRpbWU6OmhpZGRlbl9pbmNsdWRlOjpkaXNwYXRjaAo6OkNhbGxhYmxlQ2FsbEZvcjxCcm9hZGNhc3QsIFJ1bnRpbWU+AMwAABAMMGZyYW1lX3N5c3RlbRhwYWxsZXQQQ2FsbAQEVAABLBhyZW1hcmsEARhyZW1hcmsUARxWZWM8dTg+AAAMaE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsuAIhDYW4gYmUgZXhlY3V0ZWQgYnkgZXZlcnkgYG9yaWdpbmAuOHNldF9oZWFwX3BhZ2VzBAEUcGFnZXMYAQx1NjQAAQT4U2V0IHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIFdlYkFzc2VtYmx5IGVudmlyb25tZW50J3MgaGVhcC4gc2V0X2NvZGUEARBjb2RlFAEcVmVjPHU4PgACBGRTZXQgdGhlIG5ldyBydW50aW1lIGNvZGUuXHNldF9jb2RlX3dpdGhvdXRfY2hlY2tzBAEQY29kZRQBHFZlYzx1OD4AAxAZAVNldCB0aGUgbmV3IHJ1bnRpbWUgY29kZSB3aXRob3V0IGRvaW5nIGFueSBjaGVja3Mgb2YgdGhlIGdpdmVuIGBjb2RlYC4AUQFOb3RlIHRoYXQgcnVudGltZSB1cGdyYWRlcyB3aWxsIG5vdCBydW4gaWYgdGhpcyBpcyBjYWxsZWQgd2l0aCBhIG5vdC1pbmNyZWFzaW5nIHNwZWMgdmVyc2lvbiEsc2V0X3N0b3JhZ2UEARRpdGVtcxwBNFZlYzxLZXlWYWx1ZT4ABARoU2V0IHNvbWUgaXRlbXMgb2Ygc3RvcmFnZS4wa2lsbF9zdG9yYWdlBAEQa2V5cyQBIFZlYzxLZXk+AAUEdEtpbGwgc29tZSBpdGVtcyBmcm9tIHN0b3JhZ2UuLGtpbGxfcHJlZml4CAEYcHJlZml4FAEMS2V5AAEcc3Via2V5cygBDHUzMgAGEBEBS2lsbCBhbGwgc3RvcmFnZSBpdGVtcyB3aXRoIGEga2V5IHRoYXQgc3RhcnRzIHdpdGggdGhlIGdpdmVuIHByZWZpeC4AOQEqKk5PVEU6KiogV2UgcmVseSBvbiB0aGUgUm9vdCBvcmlnaW4gdG8gcHJvdmlkZSB1cyB0aGUgbnVtYmVyIG9mIHN1YmtleXMgdW5kZXI9AXRoZSBwcmVmaXggd2UgYXJlIHJlbW92aW5nIHRvIGFjY3VyYXRlbHkgY2FsY3VsYXRlIHRoZSB3ZWlnaHQgb2YgdGhpcyBmdW5jdGlvbi5EcmVtYXJrX3dpdGhfZXZlbnQEARhyZW1hcmsUARxWZWM8dTg+AAcEpE1ha2Ugc29tZSBvbi1jaGFpbiByZW1hcmsgYW5kIGVtaXQgZXZlbnQuRGF1dGhvcml6ZV91cGdyYWRlBAEkY29kZV9oYXNoLAEcVDo6SGFzaAAJEGEBQXV0aG9yaXplIGFuIHVwZ3JhZGUgdG8gYSBnaXZlbiBgY29kZV9oYXNoYCBmb3IgdGhlIHJ1bnRpbWUuIFRoZSBydW50aW1lIGNhbiBiZSBzdXBwbGllZBhsYXRlci4AfFRoaXMgY2FsbCByZXF1aXJlcyBSb290IG9yaWdpbi6AYXV0aG9yaXplX3VwZ3JhZGVfd2l0aG91dF9jaGVja3MEASRjb2RlX2hhc2gsARxUOjpIYXNoAAogYQFBdXRob3JpemUgYW4gdXBncmFkZSB0byBhIGdpdmVuIGBjb2RlX2hhc2hgIGZvciB0aGUgcnVudGltZS4gVGhlIHJ1bnRpbWUgY2FuIGJlIHN1cHBsaWVkGGxhdGVyLgBdAVdBUk5JTkc6IFRoaXMgYXV0aG9yaXplcyBhbiB1cGdyYWRlIHRoYXQgd2lsbCB0YWtlIHBsYWNlIHdpdGhvdXQgYW55IHNhZmV0eSBjaGVja3MsIGZvclkBZXhhbXBsZSB0aGF0IHRoZSBzcGVjIG5hbWUgcmVtYWlucyB0aGUgc2FtZSBhbmQgdGhhdCB0aGUgdmVyc2lvbiBudW1iZXIgaW5jcmVhc2VzLiBOb3TwcmVjb21tZW5kZWQgZm9yIG5vcm1hbCB1c2UuIFVzZSBgYXV0aG9yaXplX3VwZ3JhZGVgIGluc3RlYWQuAHxUaGlzIGNhbGwgcmVxdWlyZXMgUm9vdCBvcmlnaW4uYGFwcGx5X2F1dGhvcml6ZWRfdXBncmFkZQQBEGNvZGUUARxWZWM8dTg+AAskVQFQcm92aWRlIHRoZSBwcmVpbWFnZSAocnVudGltZSBiaW5hcnkpIGBjb2RlYCBmb3IgYW4gdXBncmFkZSB0aGF0IGhhcyBiZWVuIGF1dGhvcml6ZWQuAEkBSWYgdGhlIGF1dGhvcml6YXRpb24gcmVxdWlyZWQgYSB2ZXJzaW9uIGNoZWNrLCB0aGlzIGNhbGwgd2lsbCBlbnN1cmUgdGhlIHNwZWMgbmFtZehyZW1haW5zIHVuY2hhbmdlZCBhbmQgdGhhdCB0aGUgc3BlYyB2ZXJzaW9uIGhhcyBpbmNyZWFzZWQuAFkBRGVwZW5kaW5nIG9uIHRoZSBydW50aW1lJ3MgYE9uU2V0Q29kZWAgY29uZmlndXJhdGlvbiwgdGhpcyBmdW5jdGlvbiBtYXkgZGlyZWN0bHkgYXBwbHkRAXRoZSBuZXcgYGNvZGVgIGluIHRoZSBzYW1lIGJsb2NrIG9yIGF0dGVtcHQgdG8gc2NoZWR1bGUgdGhlIHVwZ3JhZGUuAGBBbGwgb3JpZ2lucyBhcmUgYWxsb3dlZC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuFAAAAggAGAAABQYAHAAAAiAAIAAABAgUFAAkAAACFAAoAAAFBQAsCDxwcmltaXRpdmVfdHlwZXMQSDI1NgAABAAEASBbdTg7IDMyXQAAMAxAcGFsbGV0X3RpbWVzdGFtcBhwYWxsZXQQQ2FsbAQEVAABBAxzZXQEAQxub3c0ASRUOjpNb21lbnQAAExUU2V0IHRoZSBjdXJyZW50IHRpbWUuAFUBVGhpcyBjYWxsIHNob3VsZCBiZSBpbnZva2VkIGV4YWN0bHkgb25jZSBwZXIgYmxvY2suIEl0IHdpbGwgcGFuaWMgYXQgdGhlIGZpbmFsaXphdGlvbtRwaGFzZSwgaWYgdGhpcyBjYWxsIGhhc24ndCBiZWVuIGludm9rZWQgYnkgdGhhdCB0aW1lLgBBAVRoZSB0aW1lc3RhbXAgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcHJldmlvdXMgb25lIGJ5IHRoZSBhbW91bnQgc3BlY2lmaWVkIGJ5aFtgQ29uZmlnOjpNaW5pbXVtUGVyaW9kYF0uAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfTm9uZV8uAFEBVGhpcyBkaXNwYXRjaCBjbGFzcyBpcyBfTWFuZGF0b3J5XyB0byBlbnN1cmUgaXQgZ2V0cyBleGVjdXRlZCBpbiB0aGUgYmxvY2suIEJlIGF3YXJlUQF0aGF0IGNoYW5naW5nIHRoZSBjb21wbGV4aXR5IG9mIHRoaXMgY2FsbCBjb3VsZCByZXN1bHQgZXhoYXVzdGluZyB0aGUgcmVzb3VyY2VzIGluIGGEYmxvY2sgdG8gZXhlY3V0ZSBhbnkgb3RoZXIgY2FsbHMuADQjIyBDb21wbGV4aXR5MQEtIGBPKDEpYCAoTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBvZiBgT25UaW1lc3RhbXBTZXRgIG11c3QgYWxzbyBiZSBgTygxKWApVQEtIDEgc3RvcmFnZSByZWFkIGFuZCAxIHN0b3JhZ2UgbXV0YXRpb24gKGNvZGVjIGBPKDEpYCBiZWNhdXNlIG9mIGBEaWRVcGRhdGU6OnRha2VgIGluQCAgYG9uX2ZpbmFsaXplYCnULSAxIGV2ZW50IGhhbmRsZXIgYG9uX3RpbWVzdGFtcF9zZXRgLiBNdXN0IGJlIGBPKDEpYC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuNAAABhgAOAw8cGFsbGV0X2JhbGFuY2VzGHBhbGxldBBDYWxsCARUAARJAAEkUHRyYW5zZmVyX2FsbG93X2RlYXRoCAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEUdmFsdWU8AShUOjpCYWxhbmNlAAAc1FRyYW5zZmVyIHNvbWUgbGlxdWlkIGZyZWUgYmFsYW5jZSB0byBhbm90aGVyIGFjY291bnQuADUBYHRyYW5zZmVyX2FsbG93X2RlYXRoYCB3aWxsIHNldCB0aGUgYEZyZWVCYWxhbmNlYCBvZiB0aGUgc2VuZGVyIGFuZCByZWNlaXZlci4RAUlmIHRoZSBzZW5kZXIncyBhY2NvdW50IGlzIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0sG9mIHRoZSB0cmFuc2ZlciwgdGhlIGFjY291bnQgd2lsbCBiZSByZWFwZWQuABUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgYFNpZ25lZGAgYnkgdGhlIHRyYW5zYWN0b3IuOGZvcmNlX3RyYW5zZmVyDAEYc291cmNlAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARBkZXN0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARR2YWx1ZTwBKFQ6OkJhbGFuY2UAAghhAUV4YWN0bHkgYXMgYHRyYW5zZmVyX2FsbG93X2RlYXRoYCwgZXhjZXB0IHRoZSBvcmlnaW4gbXVzdCBiZSByb290IGFuZCB0aGUgc291cmNlIGFjY291bnREbWF5IGJlIHNwZWNpZmllZC5MdHJhbnNmZXJfa2VlcF9hbGl2ZQgBEGRlc3QAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABFHZhbHVlPAEoVDo6QmFsYW5jZQADGFkBU2FtZSBhcyB0aGUgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGNhbGwsIGJ1dCB3aXRoIGEgY2hlY2sgdGhhdCB0aGUgdHJhbnNmZXIgd2lsbCBub3Rga2lsbCB0aGUgb3JpZ2luIGFjY291bnQuAOg5OSUgb2YgdGhlIHRpbWUgeW91IHdhbnQgW2B0cmFuc2Zlcl9hbGxvd19kZWF0aGBdIGluc3RlYWQuAPBbYHRyYW5zZmVyX2FsbG93X2RlYXRoYF06IHN0cnVjdC5QYWxsZXQuaHRtbCNtZXRob2QudHJhbnNmZXIwdHJhbnNmZXJfYWxsCAEQZGVzdAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEoa2VlcF9hbGl2ZUQBEGJvb2wABDwFAVRyYW5zZmVyIHRoZSBlbnRpcmUgdHJhbnNmZXJhYmxlIGJhbGFuY2UgZnJvbSB0aGUgY2FsbGVyIGFjY291bnQuAFkBTk9URTogVGhpcyBmdW5jdGlvbiBvbmx5IGF0dGVtcHRzIHRvIHRyYW5zZmVyIF90cmFuc2ZlcmFibGVfIGJhbGFuY2VzLiBUaGlzIG1lYW5zIHRoYXRhAWFueSBsb2NrZWQsIHJlc2VydmVkLCBvciBleGlzdGVudGlhbCBkZXBvc2l0cyAod2hlbiBga2VlcF9hbGl2ZWAgaXMgYHRydWVgKSwgd2lsbCBub3QgYmVdAXRyYW5zZmVycmVkIGJ5IHRoaXMgZnVuY3Rpb24uIFRvIGVuc3VyZSB0aGF0IHRoaXMgZnVuY3Rpb24gcmVzdWx0cyBpbiBhIGtpbGxlZCBhY2NvdW50LEUBeW91IG1pZ2h0IG5lZWQgdG8gcHJlcGFyZSB0aGUgYWNjb3VudCBieSByZW1vdmluZyBhbnkgcmVmZXJlbmNlIGNvdW50ZXJzLCBzdG9yYWdlQGRlcG9zaXRzLCBldGMuLi4AwFRoZSBkaXNwYXRjaCBvcmlnaW4gb2YgdGhpcyBjYWxsIG11c3QgYmUgU2lnbmVkLgCgLSBgZGVzdGA6IFRoZSByZWNpcGllbnQgb2YgdGhlIHRyYW5zZmVyLlkBLSBga2VlcF9hbGl2ZWA6IEEgYm9vbGVhbiB0byBkZXRlcm1pbmUgaWYgdGhlIGB0cmFuc2Zlcl9hbGxgIG9wZXJhdGlvbiBzaG91bGQgc2VuZCBhbGxNASAgb2YgdGhlIGZ1bmRzIHRoZSBhY2NvdW50IGhhcywgY2F1c2luZyB0aGUgc2VuZGVyIGFjY291bnQgdG8gYmUga2lsbGVkIChmYWxzZSksIG9yWQEgIHRyYW5zZmVyIGV2ZXJ5dGhpbmcgZXhjZXB0IGF0IGxlYXN0IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0LCB3aGljaCB3aWxsIGd1YXJhbnRlZSB0b5wgIGtlZXAgdGhlIHNlbmRlciBhY2NvdW50IGFsaXZlICh0cnVlKS48Zm9yY2VfdW5yZXNlcnZlCAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AARhhbW91bnRAAShUOjpCYWxhbmNlAAUMsFVucmVzZXJ2ZSBzb21lIGJhbGFuY2UgZnJvbSBhIHVzZXIgYnkgZm9yY2UuAGxDYW4gb25seSBiZSBjYWxsZWQgYnkgUk9PVC5AdXBncmFkZV9hY2NvdW50cwQBDHdob0gBRFZlYzxUOjpBY2NvdW50SWQ+AAYgcFVwZ3JhZGUgYSBzcGVjaWZpZWQgYWNjb3VudC4AdC0gYG9yaWdpbmA6IE11c3QgYmUgYFNpZ25lZGAukC0gYHdob2A6IFRoZSBhY2NvdW50IHRvIGJlIHVwZ3JhZGVkLgBVAVRoaXMgd2lsbCB3YWl2ZSB0aGUgdHJhbnNhY3Rpb24gZmVlIGlmIGF0IGxlYXN0IGFsbCBidXQgMTAlIG9mIHRoZSBhY2NvdW50cyBuZWVkZWQgdG9BAWJlIHVwZ3JhZGVkLiAoV2UgbGV0IHNvbWUgbm90IGhhdmUgdG8gYmUgdXBncmFkZWQganVzdCBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlWHBvc3NpYmlsaXR5IG9mIGNodXJuKS5EZm9yY2Vfc2V0X2JhbGFuY2UIAQx3aG8AAVBBY2NvdW50SWRMb29rdXBPZjxUPgABIG5ld19mcmVlPAEoVDo6QmFsYW5jZQAIDKxTZXQgdGhlIHJlZ3VsYXIgYmFsYW5jZSBvZiBhIGdpdmVuIGFjY291bnQuALBUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgaXMgYHJvb3RgLmxmb3JjZV9hZGp1c3RfdG90YWxfaXNzdWFuY2UIASRkaXJlY3Rpb25MAUxBZGp1c3RtZW50RGlyZWN0aW9uAAEUZGVsdGE8AShUOjpCYWxhbmNlAAkUuEFkanVzdCB0aGUgdG90YWwgaXNzdWFuY2UgaW4gYSBzYXR1cmF0aW5nIHdheS4A/ENhbiBvbmx5IGJlIGNhbGxlZCBieSByb290IGFuZCBhbHdheXMgbmVlZHMgYSBwb3NpdGl2ZSBgZGVsdGFgLgAkIyBFeGFtcGxlEGJ1cm4IARR2YWx1ZTwBKFQ6OkJhbGFuY2UAAShrZWVwX2FsaXZlRAEQYm9vbAAKHPxCdXJuIHRoZSBzcGVjaWZpZWQgbGlxdWlkIGZyZWUgYmFsYW5jZSBmcm9tIHRoZSBvcmlnaW4gYWNjb3VudC4AJQFJZiB0aGUgb3JpZ2luJ3MgYWNjb3VudCBlbmRzIHVwIGJlbG93IHRoZSBleGlzdGVudGlhbCBkZXBvc2l0IGFzIGEgcmVzdWx0CQFvZiB0aGUgYnVybiBhbmQgYGtlZXBfYWxpdmVgIGlzIGZhbHNlLCB0aGUgYWNjb3VudCB3aWxsIGJlIHJlYXBlZC4AUQFVbmxpa2Ugc2VuZGluZyBmdW5kcyB0byBhIF9idXJuXyBhZGRyZXNzLCB3aGljaCBtZXJlbHkgbWFrZXMgdGhlIGZ1bmRzIGluYWNjZXNzaWJsZSwhAXRoaXMgYGJ1cm5gIG9wZXJhdGlvbiB3aWxsIHJlZHVjZSB0b3RhbCBpc3N1YW5jZSBieSB0aGUgYW1vdW50IF9idXJuZWRfLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy48AAAGQABAAAAFBwBEAAAFAABIAAACAABMDDxwYWxsZXRfYmFsYW5jZXMUdHlwZXNMQWRqdXN0bWVudERpcmVjdGlvbgABCCBJbmNyZWFzZQAAACBEZWNyZWFzZQABAABQDIBwYWxsZXRfdHJhbnNhY3Rpb25fbXVsdGlfcGF5bWVudBhwYWxsZXQQQ2FsbAQEVAABFDBzZXRfY3VycmVuY3kEASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgAANKBTZXQgc2VsZWN0ZWQgY3VycmVuY3kgZm9yIGdpdmVuIGFjY291bnQuAGEBVGhpcyBhbGxvd3MgdG8gc2V0IGEgY3VycmVuY3kgZm9yIGFuIGFjY291bnQgaW4gd2hpY2ggYWxsIHRyYW5zYWN0aW9uIGZlZXMgd2lsbCBiZSBwYWlkLnxBY2NvdW50IGJhbGFuY2UgY2Fubm90IGJlIHplcm8uAG0BSW4gY2FzZSBvZiBzdWZmaWNpZW50IGFzc2V0LCB0aGUgY2hvc2VuIGN1cnJlbmN5IG11c3QgYmUgaW4gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgY3VycmVuY2llc0EBSW4gY2FzZSBvZiBpbnN1ZmZpY2llbnQgYXNzZXQsIHRoZSBjaG9zZW4gY3VycmVuY3kgbXVzdCBoYXZlIGEgWFlLIHBvb2wgd2l0aCBET1QAcQFXaGVuIGN1cnJlbmN5IGlzIHNldCwgZml4ZWQgZmVlIGlzIHdpdGhkcmF3biBmcm9tIHRoZSBhY2NvdW50IHRvIHBheSBmb3IgdGhlIGN1cnJlbmN5IGNoYW5nZQD4RVZNIGFjY291bnRzIGFyZSBub3cgYWxsb3dlZCB0byBjaGFuZ2UgdGhpZXIgcGF5bWVudCBjdXJyZW5jeS4AqEVtaXRzIGBDdXJyZW5jeVNldGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjBhZGRfY3VycmVuY3kIASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgABFHByaWNlVAEUUHJpY2UAARzIQWRkIGEgY3VycmVuY3kgdG8gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgY3VycmVuY2llcy4AkE9ubHkgbWVtYmVyIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgBBAUN1cnJlbmN5IG11c3Qgbm90IGJlIGFscmVhZHkgYWNjZXB0ZWQuIENvcmUgYXNzZXQgaWQgY2Fubm90IGJlIGV4cGxpY2l0bHkgYWRkZWQuALBFbWl0cyBgQ3VycmVuY3lBZGRlZGAgZXZlbnQgd2hlbiBzdWNjZXNzZnVsLjxyZW1vdmVfY3VycmVuY3kEASBjdXJyZW5jeSgBMEFzc2V0SWRPZjxUPgACGNRSZW1vdmUgY3VycmVuY3kgZnJvbSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgY3VycmVuY2llc7RPbmx5IHNlbGVjdGVkIG1lbWJlcnMgY2FuIHBlcmZvcm0gdGhpcyBhY3Rpb24AdENvcmUgYXNzZXQgY2Fubm90IGJlIHJlbW92ZWQuAKBFbWl0cyBgQ3VycmVuY3lSZW1vdmVkYCB3aGVuIHN1Y2Nlc3NmdWwuWHJlc2V0X3BheW1lbnRfY3VycmVuY3kEAShhY2NvdW50X2lkAAEwVDo6QWNjb3VudElkAAMUvFJlc2V0IGN1cnJlbmN5IG9mIHRoZSBzcGVjaWZpZWQgYWNjb3VudCB0byBIRFguFQFJZiB0aGUgYWNjb3VudCBpcyBFVk0gYWNjb3VudCwgdGhlIHBheW1lbnQgY3VycmVuY3kgaXMgcmVzZXQgdG8gV0VUSC64T25seSBzZWxlY3RlZCBtZW1iZXJzIGNhbiBwZXJmb3JtIHRoaXMgYWN0aW9uLgCQRW1pdHMgYEN1cnJlbmN5U2V0YCB3aGVuIHN1Y2Nlc3NmdWwuPGRpc3BhdGNoX3Blcm1pdCQBEGZyb21YARBIMTYwAAEIdG9YARBIMTYwAAEUdmFsdWVgARBVMjU2AAEQZGF0YRQBHFZlYzx1OD4AASRnYXNfbGltaXQYAQx1NjQAASBkZWFkbGluZWABEFUyNTYAAQR2CAEIdTgAAQRyLAEQSDI1NgABBHMsARBIMjU2AAQQUERpc3BhdGNoIEVWTSBwZXJtaXQuwQFUaGUgbWFpbiBwdXJwb3NlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWxsb3cgRVZNIGFjY291bnRzIHRvIHBheSBmb3IgdGhlIHRyYW5zYWN0aW9uIGZlZSBpbiBub24tbmF0aXZlIGN1cnJlbmN50GJ5IGFsbG93aW5nIHRoZW0gdG8gc2VsZi1kaXNwYXRjaCBwcmUtc2lnbmVkIHBlcm1pdC7gVGhlIEVWTSBmZWUgaXMgcGFpZCBpbiB0aGUgY3VycmVuY3kgc2V0IGZvciB0aGUgYWNjb3VudC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMuVAw0c3BfYXJpdGhtZXRpYyxmaXhlZF9wb2ludCRGaXhlZFUxMjgAAAQAQAEQdTEyOAAAWAg8cHJpbWl0aXZlX3R5cGVzEEgxNjAAAAQAXAEgW3U4OyAyMF0AAFwAAAMUAAAACABgCDxwcmltaXRpdmVfdHlwZXMQVTI1NgAABABkASBbdTY0OyA0XQAAZAAAAwQAAAAYAGgMPHBhbGxldF90cmVhc3VyeRhwYWxsZXQQQ2FsbAgEVAAESQABGCxzcGVuZF9sb2NhbAgBGGFtb3VudDwBPEJhbGFuY2VPZjxULCBJPgABLGJlbmVmaWNpYXJ5AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AA0S4UHJvcG9zZSBhbmQgYXBwcm92ZSBhIHNwZW5kIG9mIHRyZWFzdXJ5IGZ1bmRzLgBIIyMgRGlzcGF0Y2ggT3JpZ2luAEUBTXVzdCBiZSBbYENvbmZpZzo6U3BlbmRPcmlnaW5gXSB3aXRoIHRoZSBgU3VjY2Vzc2AgdmFsdWUgYmVpbmcgYXQgbGVhc3QgYGFtb3VudGAuACwjIyMgRGV0YWlsc0UBTk9URTogRm9yIHJlY29yZC1rZWVwaW5nIHB1cnBvc2VzLCB0aGUgcHJvcG9zZXIgaXMgZGVlbWVkIHRvIGJlIGVxdWl2YWxlbnQgdG8gdGhlMGJlbmVmaWNpYXJ5LgA4IyMjIFBhcmFtZXRlcnNBAS0gYGFtb3VudGA6IFRoZSBhbW91bnQgdG8gYmUgdHJhbnNmZXJyZWQgZnJvbSB0aGUgdHJlYXN1cnkgdG8gdGhlIGBiZW5lZmljaWFyeWAu6C0gYGJlbmVmaWNpYXJ5YDogVGhlIGRlc3RpbmF0aW9uIGFjY291bnQgZm9yIHRoZSB0cmFuc2Zlci4AJCMjIEV2ZW50cwC0RW1pdHMgW2BFdmVudDo6U3BlbmRBcHByb3ZlZGBdIGlmIHN1Y2Nlc3NmdWwuPHJlbW92ZV9hcHByb3ZhbAQBLHByb3Bvc2FsX2lkbAE0UHJvcG9zYWxJbmRleAAEVC0BRm9yY2UgYSBwcmV2aW91c2x5IGFwcHJvdmVkIHByb3Bvc2FsIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgYXBwcm92YWwgcXVldWUuAEgjIyBEaXNwYXRjaCBPcmlnaW4AhE11c3QgYmUgW2BDb25maWc6OlJlamVjdE9yaWdpbmBdLgAoIyMgRGV0YWlscwDAVGhlIG9yaWdpbmFsIGRlcG9zaXQgd2lsbCBubyBsb25nZXIgYmUgcmV0dXJuZWQuADgjIyMgUGFyYW1ldGVyc6AtIGBwcm9wb3NhbF9pZGA6IFRoZSBpbmRleCBvZiBhIHByb3Bvc2FsADgjIyMgQ29tcGxleGl0eawtIE8oQSkgd2hlcmUgYEFgIGlzIHRoZSBudW1iZXIgb2YgYXBwcm92YWxzACgjIyMgRXJyb3JzRQEtIFtgRXJyb3I6OlByb3Bvc2FsTm90QXBwcm92ZWRgXTogVGhlIGBwcm9wb3NhbF9pZGAgc3VwcGxpZWQgd2FzIG5vdCBmb3VuZCBpbiB0aGVRASAgYXBwcm92YWwgcXVldWUsIGkuZS4sIHRoZSBwcm9wb3NhbCBoYXMgbm90IGJlZW4gYXBwcm92ZWQuIFRoaXMgY291bGQgYWxzbyBtZWFuIHRoZVkBICBwcm9wb3NhbCBkb2VzIG5vdCBleGlzdCBhbHRvZ2V0aGVyLCB0aHVzIHRoZXJlIGlzIG5vIHdheSBpdCB3b3VsZCBoYXZlIGJlZW4gYXBwcm92ZWRUICBpbiB0aGUgZmlyc3QgcGxhY2UuFHNwZW5kEAEoYXNzZXRfa2luZHABREJveDxUOjpBc3NldEtpbmQ+AAEYYW1vdW50PAFQQXNzZXRCYWxhbmNlT2Y8VCwgST4AASxiZW5lZmljaWFyeQABeEJveDxCZW5lZmljaWFyeUxvb2t1cE9mPFQsIEk+PgABKHZhbGlkX2Zyb210AXBPcHRpb248QmxvY2tOdW1iZXJGb3I8VCwgST4+AAVouFByb3Bvc2UgYW5kIGFwcHJvdmUgYSBzcGVuZCBvZiB0cmVhc3VyeSBmdW5kcy4ASCMjIERpc3BhdGNoIE9yaWdpbgAdAU11c3QgYmUgW2BDb25maWc6OlNwZW5kT3JpZ2luYF0gd2l0aCB0aGUgYFN1Y2Nlc3NgIHZhbHVlIGJlaW5nIGF0IGxlYXN0VQFgYW1vdW50YCBvZiBgYXNzZXRfa2luZGAgaW4gdGhlIG5hdGl2ZSBhc3NldC4gVGhlIGFtb3VudCBvZiBgYXNzZXRfa2luZGAgaXMgY29udmVydGVk1GZvciBhc3NlcnRpb24gdXNpbmcgdGhlIFtgQ29uZmlnOjpCYWxhbmNlQ29udmVydGVyYF0uACgjIyBEZXRhaWxzAEkBQ3JlYXRlIGFuIGFwcHJvdmVkIHNwZW5kIGZvciB0cmFuc2ZlcnJpbmcgYSBzcGVjaWZpYyBgYW1vdW50YCBvZiBgYXNzZXRfa2luZGAgdG8gYWEBZGVzaWduYXRlZCBiZW5lZmljaWFyeS4gVGhlIHNwZW5kIG11c3QgYmUgY2xhaW1lZCB1c2luZyB0aGUgYHBheW91dGAgZGlzcGF0Y2hhYmxlIHdpdGhpbnR0aGUgW2BDb25maWc6OlBheW91dFBlcmlvZGBdLgA4IyMjIFBhcmFtZXRlcnMVAS0gYGFzc2V0X2tpbmRgOiBBbiBpbmRpY2F0b3Igb2YgdGhlIHNwZWNpZmljIGFzc2V0IGNsYXNzIHRvIGJlIHNwZW50LkEBLSBgYW1vdW50YDogVGhlIGFtb3VudCB0byBiZSB0cmFuc2ZlcnJlZCBmcm9tIHRoZSB0cmVhc3VyeSB0byB0aGUgYGJlbmVmaWNpYXJ5YC64LSBgYmVuZWZpY2lhcnlgOiBUaGUgYmVuZWZpY2lhcnkgb2YgdGhlIHNwZW5kLlUBLSBgdmFsaWRfZnJvbWA6IFRoZSBibG9jayBudW1iZXIgZnJvbSB3aGljaCB0aGUgc3BlbmQgY2FuIGJlIGNsYWltZWQuIEl0IGNhbiByZWZlciB0bxkBICB0aGUgcGFzdCBpZiB0aGUgcmVzdWx0aW5nIHNwZW5kIGhhcyBub3QgeWV0IGV4cGlyZWQgYWNjb3JkaW5nIHRvIHRoZUUBICBbYENvbmZpZzo6UGF5b3V0UGVyaW9kYF0uIElmIGBOb25lYCwgdGhlIHNwZW5kIGNhbiBiZSBjbGFpbWVkIGltbWVkaWF0ZWx5IGFmdGVyLCAgYXBwcm92YWwuACQjIyBFdmVudHMAyEVtaXRzIFtgRXZlbnQ6OkFzc2V0U3BlbmRBcHByb3ZlZGBdIGlmIHN1Y2Nlc3NmdWwuGHBheW91dAQBFGluZGV4KAEoU3BlbmRJbmRleAAGTDhDbGFpbSBhIHNwZW5kLgBIIyMgRGlzcGF0Y2ggT3JpZ2luADhNdXN0IGJlIHNpZ25lZAAoIyMgRGV0YWlscwBVAVNwZW5kcyBtdXN0IGJlIGNsYWltZWQgd2l0aGluIHNvbWUgdGVtcG9yYWwgYm91bmRzLiBBIHNwZW5kIG1heSBiZSBjbGFpbWVkIHdpdGhpbiBvbmXUW2BDb25maWc6OlBheW91dFBlcmlvZGBdIGZyb20gdGhlIGB2YWxpZF9mcm9tYCBibG9jay5VAUluIGNhc2Ugb2YgYSBwYXlvdXQgZmFpbHVyZSwgdGhlIHNwZW5kIHN0YXR1cyBtdXN0IGJlIHVwZGF0ZWQgd2l0aCB0aGUgYGNoZWNrX3N0YXR1c2DcZGlzcGF0Y2hhYmxlIGJlZm9yZSByZXRyeWluZyB3aXRoIHRoZSBjdXJyZW50IGZ1bmN0aW9uLgA4IyMjIFBhcmFtZXRlcnNsLSBgaW5kZXhgOiBUaGUgc3BlbmQgaW5kZXguACQjIyBFdmVudHMAkEVtaXRzIFtgRXZlbnQ6OlBhaWRgXSBpZiBzdWNjZXNzZnVsLjBjaGVja19zdGF0dXMEARRpbmRleCgBKFNwZW5kSW5kZXgAB0wpAUNoZWNrIHRoZSBzdGF0dXMgb2YgdGhlIHNwZW5kIGFuZCByZW1vdmUgaXQgZnJvbSB0aGUgc3RvcmFnZSBpZiBwcm9jZXNzZWQuAEgjIyBEaXNwYXRjaCBPcmlnaW4APE11c3QgYmUgc2lnbmVkLgAoIyMgRGV0YWlscwABAVRoZSBzdGF0dXMgY2hlY2sgaXMgYSBwcmVyZXF1aXNpdGUgZm9yIHJldHJ5aW5nIGEgZmFpbGVkIHBheW91dC5JAUlmIGEgc3BlbmQgaGFzIGVpdGhlciBzdWNjZWVkZWQgb3IgZXhwaXJlZCwgaXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yYWdlIGJ5IHRoaXPsZnVuY3Rpb24uIEluIHN1Y2ggaW5zdGFuY2VzLCB0cmFuc2FjdGlvbiBmZWVzIGFyZSByZWZ1bmRlZC4AOCMjIyBQYXJhbWV0ZXJzbC0gYGluZGV4YDogVGhlIHNwZW5kIGluZGV4LgAkIyMgRXZlbnRzAPhFbWl0cyBbYEV2ZW50OjpQYXltZW50RmFpbGVkYF0gaWYgdGhlIHNwZW5kIHBheW91dCBoYXMgZmFpbGVkLgEBRW1pdHMgW2BFdmVudDo6U3BlbmRQcm9jZXNzZWRgXSBpZiB0aGUgc3BlbmQgcGF5b3V0IGhhcyBzdWNjZWVkLih2b2lkX3NwZW5kBAEUaW5kZXgoAShTcGVuZEluZGV4AAhAfFZvaWQgcHJldmlvdXNseSBhcHByb3ZlZCBzcGVuZC4ASCMjIERpc3BhdGNoIE9yaWdpbgCETXVzdCBiZSBbYENvbmZpZzo6UmVqZWN0T3JpZ2luYF0uACgjIyBEZXRhaWxzAB0BQSBzcGVuZCB2b2lkIGlzIG9ubHkgcG9zc2libGUgaWYgdGhlIHBheW91dCBoYXMgbm90IGJlZW4gYXR0ZW1wdGVkIHlldC4AOCMjIyBQYXJhbWV0ZXJzbC0gYGluZGV4YDogVGhlIHNwZW5kIGluZGV4LgAkIyMgRXZlbnRzAMBFbWl0cyBbYEV2ZW50OjpBc3NldFNwZW5kVm9pZGVkYF0gaWYgc3VjY2Vzc2Z1bC4EDQFDb250YWlucyBhIHZhcmlhbnQgcGVyIGRpc3BhdGNoYWJsZSBleHRyaW5zaWMgdGhhdCB0aGlzIHBhbGxldCBoYXMubAAABigAcAAABAAAdAQYT3B0aW9uBARUASgBCBBOb25lAAAAEFNvbWUEACgAAAEAAHgMOHBhbGxldF91dGlsaXR5GHBhbGxldBBDYWxsBARUAAEgFGJhdGNoBAEUY2FsbHN8AXxWZWM8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AABIfFNlbmQgYSBiYXRjaCBvZiBkaXNwYXRjaCBjYWxscy4AsE1heSBiZSBjYWxsZWQgZnJvbSBhbnkgb3JpZ2luIGV4Y2VwdCBgTm9uZWAuAF0BLSBgY2FsbHNgOiBUaGUgY2FsbHMgdG8gYmUgZGlzcGF0Y2hlZCBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVGhlIG51bWJlciBvZiBjYWxsIG11c3Qgbm90OQEgIGV4Y2VlZCB0aGUgY29uc3RhbnQ6IGBiYXRjaGVkX2NhbGxzX2xpbWl0YCAoYXZhaWxhYmxlIGluIGNvbnN0YW50IG1ldGFkYXRhKS4AVQFJZiBvcmlnaW4gaXMgcm9vdCB0aGVuIHRoZSBjYWxscyBhcmUgZGlzcGF0Y2hlZCB3aXRob3V0IGNoZWNraW5nIG9yaWdpbiBmaWx0ZXIuIChUaGlz7GluY2x1ZGVzIGJ5cGFzc2luZyBgZnJhbWVfc3lzdGVtOjpDb25maWc6OkJhc2VDYWxsRmlsdGVyYCkuADQjIyBDb21wbGV4aXR50C0gTyhDKSB3aGVyZSBDIGlzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gYmUgYmF0Y2hlZC4AVQFUaGlzIHdpbGwgcmV0dXJuIGBPa2AgaW4gYWxsIGNpcmN1bXN0YW5jZXMuIFRvIGRldGVybWluZSB0aGUgc3VjY2VzcyBvZiB0aGUgYmF0Y2gsIGFuMQFldmVudCBpcyBkZXBvc2l0ZWQuIElmIGEgY2FsbCBmYWlsZWQgYW5kIHRoZSBiYXRjaCB3YXMgaW50ZXJydXB0ZWQsIHRoZW4gdGhlVQFgQmF0Y2hJbnRlcnJ1cHRlZGAgZXZlbnQgaXMgZGVwb3NpdGVkLCBhbG9uZyB3aXRoIHRoZSBudW1iZXIgb2Ygc3VjY2Vzc2Z1bCBjYWxscyBtYWRlTQFhbmQgdGhlIGVycm9yIG9mIHRoZSBmYWlsZWQgY2FsbC4gSWYgYWxsIHdlcmUgc3VjY2Vzc2Z1bCwgdGhlbiB0aGUgYEJhdGNoQ29tcGxldGVkYExldmVudCBpcyBkZXBvc2l0ZWQuNGFzX2Rlcml2YXRpdmUIARRpbmRleIABDHUxNgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAE03FNlbmQgYSBjYWxsIHRocm91Z2ggYW4gaW5kZXhlZCBwc2V1ZG9ueW0gb2YgdGhlIHNlbmRlci4AVQFGaWx0ZXIgZnJvbSBvcmlnaW4gYXJlIHBhc3NlZCBhbG9uZy4gVGhlIGNhbGwgd2lsbCBiZSBkaXNwYXRjaGVkIHdpdGggYW4gb3JpZ2luIHdoaWNovHVzZSB0aGUgc2FtZSBmaWx0ZXIgYXMgdGhlIG9yaWdpbiBvZiB0aGlzIGNhbGwuAEUBTk9URTogSWYgeW91IG5lZWQgdG8gZW5zdXJlIHRoYXQgYW55IGFjY291bnQtYmFzZWQgZmlsdGVyaW5nIGlzIG5vdCBob25vcmVkIChpLmUuYQFiZWNhdXNlIHlvdSBleHBlY3QgYHByb3h5YCB0byBoYXZlIGJlZW4gdXNlZCBwcmlvciBpbiB0aGUgY2FsbCBzdGFjayBhbmQgeW91IGRvIG5vdCB3YW50UQF0aGUgY2FsbCByZXN0cmljdGlvbnMgdG8gYXBwbHkgdG8gYW55IHN1Yi1hY2NvdW50cyksIHRoZW4gdXNlIGBhc19tdWx0aV90aHJlc2hvbGRfMWB8aW4gdGhlIE11bHRpc2lnIHBhbGxldCBpbnN0ZWFkLgD0Tk9URTogUHJpb3IgdG8gdmVyc2lvbiAqMTIsIHRoaXMgd2FzIGNhbGxlZCBgYXNfbGltaXRlZF9zdWJgLgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uJGJhdGNoX2FsbAQBFGNhbGxzfAF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgACNOxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMgYW5kIGF0b21pY2FsbHkgZXhlY3V0ZSB0aGVtLiEBVGhlIHdob2xlIHRyYW5zYWN0aW9uIHdpbGwgcm9sbGJhY2sgYW5kIGZhaWwgaWYgYW55IG9mIHRoZSBjYWxscyBmYWlsZWQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAFUBSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoZWQgd2l0aG91dCBjaGVja2luZyBvcmlnaW4gZmlsdGVyLiAoVGhpc+xpbmNsdWRlcyBieXBhc3NpbmcgYGZyYW1lX3N5c3RlbTo6Q29uZmlnOjpCYXNlQ2FsbEZpbHRlcmApLgA0IyMgQ29tcGxleGl0edAtIE8oQykgd2hlcmUgQyBpcyB0aGUgbnVtYmVyIG9mIGNhbGxzIHRvIGJlIGJhdGNoZWQuLGRpc3BhdGNoX2FzCAEkYXNfb3JpZ2luhAFUQm94PFQ6OlBhbGxldHNPcmlnaW4+AAEQY2FsbAwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AAxjIRGlzcGF0Y2hlcyBhIGZ1bmN0aW9uIGNhbGwgd2l0aCBhIHByb3ZpZGVkIG9yaWdpbi4AxFRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9Sb290Xy4ANCMjIENvbXBsZXhpdHkcLSBPKDEpLixmb3JjZV9iYXRjaAQBFGNhbGxzfAF8VmVjPDxUIGFzIENvbmZpZz46OlJ1bnRpbWVDYWxsPgAENHxTZW5kIGEgYmF0Y2ggb2YgZGlzcGF0Y2ggY2FsbHMu1FVubGlrZSBgYmF0Y2hgLCBpdCBhbGxvd3MgZXJyb3JzIGFuZCB3b24ndCBpbnRlcnJ1cHQuALBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgBdAS0gYGNhbGxzYDogVGhlIGNhbGxzIHRvIGJlIGRpc3BhdGNoZWQgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRoZSBudW1iZXIgb2YgY2FsbCBtdXN0IG5vdDkBICBleGNlZWQgdGhlIGNvbnN0YW50OiBgYmF0Y2hlZF9jYWxsc19saW1pdGAgKGF2YWlsYWJsZSBpbiBjb25zdGFudCBtZXRhZGF0YSkuAE0BSWYgb3JpZ2luIGlzIHJvb3QgdGhlbiB0aGUgY2FsbHMgYXJlIGRpc3BhdGNoIHdpdGhvdXQgY2hlY2tpbmcgb3JpZ2luIGZpbHRlci4gKFRoaXPsaW5jbHVkZXMgYnlwYXNzaW5nIGBmcmFtZV9zeXN0ZW06OkNvbmZpZzo6QmFzZUNhbGxGaWx0ZXJgKS4ANCMjIENvbXBsZXhpdHnQLSBPKEMpIHdoZXJlIEMgaXMgdGhlIG51bWJlciBvZiBjYWxscyB0byBiZSBiYXRjaGVkLix3aXRoX3dlaWdodAgBEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAEYd2VpZ2h05AEYV2VpZ2h0AAUYxERpc3BhdGNoIGEgZnVuY3Rpb24gY2FsbCB3aXRoIGEgc3BlY2lmaWVkIHdlaWdodC4ALQFUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSB3ZWlnaHQgb2YgdGhlIGNhbGwsIGFuZCBpbnN0ZWFkIGFsbG93cyB0aGW4Um9vdCBvcmlnaW4gdG8gc3BlY2lmeSB0aGUgd2VpZ2h0IG9mIHRoZSBjYWxsLgDEVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1Jvb3RfLhxpZl9lbHNlCAEQbWFpbgwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4AASBmYWxsYmFjawwBfEJveDw8VCBhcyBDb25maWc+OjpSdW50aW1lQ2FsbD4ABlwVAURpc3BhdGNoIGEgZmFsbGJhY2sgY2FsbCBpbiB0aGUgZXZlbnQgdGhlIG1haW4gY2FsbCBmYWlscyB0byBleGVjdXRlLrBNYXkgYmUgY2FsbGVkIGZyb20gYW55IG9yaWdpbiBleGNlcHQgYE5vbmVgLgDkVGhpcyBmdW5jdGlvbiBmaXJzdCBhdHRlbXB0cyB0byBkaXNwYXRjaCB0aGUgYG1haW5gIGNhbGwu1ElmIHRoZSBgbWFpbmAgY2FsbCBmYWlscywgdGhlIGBmYWxsYmFja2AgaXMgYXR0ZW10ZWQuFQFpZiB0aGUgZmFsbGJhY2sgaXMgc3VjY2Vzc2Z1bGx5IGRpc3BhdGNoZWQsIHRoZSB3ZWlnaHRzIG9mIGJvdGggY2FsbHMlAWFyZSBhY2N1bXVsYXRlZCBhbmQgYW4gZXZlbnQgY29udGFpbmluZyB0aGUgbWFpbiBjYWxsIGVycm9yIGlzIGRlcG9zaXRlZC4A3EluIHRoZSBldmVudCBvZiBhIGZhbGxiYWNrIGZhaWx1cmUgdGhlIHdob2xlIGNhbGwgZmFpbHNod2l0aCB0aGUgd2VpZ2h0cyByZXR1cm5lZC4AQQEtIGBtYWluYDogVGhlIG1haW4gY2FsbCB0byBiZSBkaXNwYXRjaGVkLiBUaGlzIGlzIHRoZSBwcmltYXJ5IGFjdGlvbiB0byBleGVjdXRlLj0BLSBgZmFsbGJhY2tgOiBUaGUgZmFsbGJhY2sgY2FsbCB0byBiZSBkaXNwYXRjaGVkIGluIGNhc2UgdGhlIGBtYWluYCBjYWxsIGZhaWxzLgBEIyMgRGlzcGF0Y2ggTG9naWNBAS0gSWYgdGhlIG9yaWdpbiBpcyBgcm9vdGAsIGJvdGggdGhlIG1haW4gYW5kIGZhbGxiYWNrIGNhbGxzIGFyZSBleGVjdXRlZCB3aXRob3V0eCAgYXBwbHlpbmcgYW55IG9yaWdpbiBmaWx0ZXJzLkkBLSBJZiB0aGUgb3JpZ2luIGlzIG5vdCBgcm9vdGAsIHRoZSBvcmlnaW4gZmlsdGVyIGlzIGFwcGxpZWQgdG8gYm90aCB0aGUgYG1haW5gIGFuZEwgIGBmYWxsYmFja2AgY2FsbHMuACwjIyBVc2UgQ2FzZVkBLSBTb21lIHVzZSBjYXNlcyBtaWdodCBpbnZvbHZlIHN1Ym1pdHRpbmcgYSBgYmF0Y2hgIHR5cGUgY2FsbCBpbiBlaXRoZXIgbWFpbiwgZmFsbGJhY2soICBvciBib3RoLlBkaXNwYXRjaF9hc19mYWxsaWJsZQgBJGFzX29yaWdpboQBVEJveDxUOjpQYWxsZXRzT3JpZ2luPgABEGNhbGwMAXxCb3g8PFQgYXMgQ29uZmlnPjo6UnVudGltZUNhbGw+AAcUyERpc3BhdGNoZXMgYSBmdW5jdGlvbiBjYWxsIHdpdGggYSBwcm92aWRlZCBvcmlnaW4uAFEBQWxtb3N0IHRoZSBzYW1lIGFzIFtgUGFsbGV0OjpkaXNwYXRjaF9hc2BdIGJ1dCBmb3J3YXJkcyBhbnkgZXJyb3Igb2YgdGhlIGlubmVyIGNhbGwuAMRUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfUm9vdF8uBA0BQ29udGFpbnMgYSB2YXJpYW50IHBlciBkaXNwYXRjaGFibGUgZXh0cmluc2ljIHRoYXQgdGhpcyBwYWxsZXQgaGFzLnwAAAIMAIAAAAUEAIQIPGh5ZHJhZHhfcnVudGltZTBPcmlnaW5DYWxsZXIAARgYc3lzdGVtBACIAXRmcmFtZV9zeXN0ZW06Ok9yaWdpbjxSdW50aW1lPgABAEhUZWNobmljYWxDb21taXR0ZWUEAIwBAQFwYWxsZXRfY29sbGVjdGl2ZTo6T3JpZ2luPFJ1bnRpbWUsIHBhbGxldF9jb2xsZWN0aXZlOjpJbnN0YW5jZTI+ABkAHE9yaWdpbnMEAJABdHBhbGxldF9jdXN0b21fb3JpZ2luczo6T3JpZ2luACYAIEV0aGVyZXVtBACUAVxwYWxsZXRfZXRoZXJldW06Ok9yaWdpbgBcACxQb2xrYWRvdFhjbQQAmAFIcGFsbGV0X3hjbTo6T3JpZ2luAGsAKEN1bXVsdXNYY20EANwBaGN1bXVsdXNfcGFsbGV0X3hjbTo6T3JpZ2luAG0AAIgMNGZyYW1lX3N1cHBvcnQgZGlzcGF0Y2gkUmF3T3JpZ2luBCRBY2NvdW50SWQBAAEQEFJvb3QAAAAYU2lnbmVkBAAAASRBY2NvdW50SWQAAQAQTm9uZQACAChBdXRob3JpemVkAAMAAIwIRHBhbGxldF9jb2xsZWN0aXZlJFJhd09yaWdpbggkQWNjb3VudElkAQAESQABDBxNZW1iZXJzCAAoASxNZW1iZXJDb3VudAAAKAEsTWVtYmVyQ291bnQAAAAYTWVtYmVyBAAAASRBY2NvdW50SWQAAQAgX1BoYW50b20AAgAAkBQ8aHlkcmFkeF9ydW50aW1lKGdvdmVybmFuY2Ucb3JpZ2luc1RwYWxsZXRfY3VzdG9tX29yaWdpbnMYT3JpZ2luAAEkRFdoaXRlbGlzdGVkQ2FsbGVyAAAATFJlZmVyZW5kdW1DYW5jZWxsZXIAAQBAUmVmZXJlbmR1bUtpbGxlcgACADBHZW5lcmFsQWRtaW4AAwA0T21uaXBvb2xBZG1pbgAEACRUcmVhc3VyZXIABQAcU3BlbmRlcgAGABhUaXBwZXIABwBIRWNvbm9taWNQYXJhbWV0ZXJzAAgAAJQIPHBhbGxldF9ldGhlcmV1bSRSYXdPcmlnaW4AAQRMRXRoZXJldW1UcmFuc2FjdGlvbgQAWAEQSDE2MAAAAACYDChwYWxsZXRfeGNtGHBhbGxldBhPcmlnaW4AAQgMWGNtBACcASBMb2NhdGlvbgAAACBSZXNwb25zZQQAnAEgTG9jYXRpb24AAQAAnBAsc3RhZ2luZ194Y20IdjUgbG9jYXRpb24gTG9jYXRpb24AAAgBHHBhcmVudHMIAQh1OAABIGludGVyaW9yoAEkSnVuY3Rpb25zAACgECxzdGFnaW5nX3hjbQh2NSRqdW5jdGlvbnMkSnVuY3Rpb25zAAEkEEhlcmUAAAAIWDEEAKQBSEFyYzxbSnVuY3Rpb247IDFdPgABAAhYMgQAwAFIQXJjPFtKdW5jdGlvbjsgMl0+AAIACFgzBADEAUhBcmM8W0p1bmN0aW9uOyAzXT4AAwAIWDQEAMgBSEFyYzxbSnVuY3Rpb247IDRdPgAEAAhYNQQAzAFIQXJjPFtKdW5jdGlvbjsgNV0+AAUACFg2BADQAUhBcmM8W0p1bmN0aW9uOyA2XT4ABgAIWDcEANQBSEFyYzxbSnVuY3Rpb247IDddPgAHAAhYOAQA2AFIQXJjPFtKdW5jdGlvbjsgOF0+AAgAAKQAAAMBAAAAqACoECxzdGFnaW5nX3hjbQh2NSBqdW5jdGlvbiBKdW5jdGlvbgABKCRQYXJhY2hhaW4EAGwBDHUzMgAAACxBY2NvdW50SWQzMggBHG5ldHdvcmusAURPcHRpb248TmV0d29ya0lkPgABCGlkBAEgW3U4OyAzMl0AAQA4QWNjb3VudEluZGV4NjQIARxuZXR3b3JrrAFET3B0aW9uPE5ldHdvcmtJZD4AARRpbmRleDQBDHU2NAACADBBY2NvdW50S2V5MjAIARxuZXR3b3JrrAFET3B0aW9uPE5ldHdvcmtJZD4AAQxrZXlcASBbdTg7IDIwXQADADhQYWxsZXRJbnN0YW5jZQQACAEIdTgABAAwR2VuZXJhbEluZGV4BAA8ARB1MTI4AAUAKEdlbmVyYWxLZXkIARhsZW5ndGgIAQh1OAABEGRhdGEEASBbdTg7IDMyXQAGACRPbmx5Q2hpbGQABwAkUGx1cmFsaXR5CAEIaWS0ARhCb2R5SWQAARBwYXJ0vAEgQm9keVBhcnQACAA8R2xvYmFsQ29uc2Vuc3VzBACwASROZXR3b3JrSWQACQAArAQYT3B0aW9uBARUAbABCBBOb25lAAAAEFNvbWUEALAAAAEAALAQLHN0YWdpbmdfeGNtCHY1IGp1bmN0aW9uJE5ldHdvcmtJZAABICRCeUdlbmVzaXMEAAQBIFt1ODsgMzJdAAAAGEJ5Rm9yawgBMGJsb2NrX251bWJlchgBDHU2NAABKGJsb2NrX2hhc2gEASBbdTg7IDMyXQABACBQb2xrYWRvdAACABhLdXNhbWEAAwAgRXRoZXJldW0EASBjaGFpbl9pZDQBDHU2NAAHACxCaXRjb2luQ29yZQAIACxCaXRjb2luQ2FzaAAJAEBQb2xrYWRvdEJ1bGxldGluAAoAALQQDHhjbQh2MyBqdW5jdGlvbhhCb2R5SWQAASgQVW5pdAAAABxNb25pa2VyBAC4ARxbdTg7IDRdAAEAFEluZGV4BABsAQx1MzIAAgAkRXhlY3V0aXZlAAMAJFRlY2huaWNhbAAEACxMZWdpc2xhdGl2ZQAFACBKdWRpY2lhbAAGABxEZWZlbnNlAAcAOEFkbWluaXN0cmF0aW9uAAgAIFRyZWFzdXJ5AAkAALgAAAMEAAAACAC8EAx4Y20IdjMganVuY3Rpb24gQm9keVBhcnQAARQUVm9pY2UAAAAcTWVtYmVycwQBFGNvdW50bAEMdTMyAAEAIEZyYWN0aW9uCAEMbm9tbAEMdTMyAAEUZGVub21sAQx1MzIAAgBEQXRMZWFzdFByb3BvcnRpb24IAQxub21sAQx1MzIAARRkZW5vbWwBDHUzMgADAEhNb3JlVGhhblByb3BvcnRpb24IAQxub21sAQx1MzIAARRkZW5vbWwBDHUzMgAEAADAAAADAgAAAKgAxAAAAwMAAACoAMgAAAMEAAAAqADMAAADBQAAAKgA0AAAAwYAAACoANQAAAMHAAAAqADYAAADCAAAAKgA3AxIY3VtdWx1c19wYWxsZXRfeGNtGHBhbGxldBhPcmlnaW4AAQgUUmVsYXkAAABAU2libGluZ1BhcmFjaGFpbgQA4AEYUGFyYUlkAAEAAOAMdHBvbGthZG90X3BhcmFjaGFpbl9wcmltaXRpdmVzKHByaW1pdGl2ZXMISWQAAAQAKAEMdTMyAADkDChzcF93ZWlnaHRzJHdlaWdodF92MhhXZWlnaHQAAAgBIHJlZl90aW1lNAEMdTY0AAEocHJvb2Zfc2l6ZTQBDHU2NAAA6Aw8cGFsbGV0X3ByZWltYWdlGHBhbGxldBBDYWxsBARUAAEUNG5vdGVfcHJlaW1hZ2UEARRieXRlcxQBHFZlYzx1OD4AABB0UmVnaXN0ZXIgYSBwcmVpbWFnZSBvbi1jaGFpbi4AVQFJZiB0aGUgcHJlaW1hZ2Ugd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkLCBubyBmZWVzIG9yIGRlcG9zaXRzIGFyZSB0YWtlbiBmb3IgcHJvdmlkaW5nVQF0aGUgcHJlaW1hZ2UuIE90aGVyd2lzZSwgYSBkZXBvc2l0IGlzIHRha2VuIHByb3BvcnRpb25hbCB0byB0aGUgc2l6ZSBvZiB0aGUgcHJlaW1hZ2UuPHVubm90ZV9wcmVpbWFnZQQBEGhhc2gsARxUOjpIYXNoAAEY3ENsZWFyIGFuIHVucmVxdWVzdGVkIHByZWltYWdlIGZyb20gdGhlIHJ1bnRpbWUgc3RvcmFnZS4A/ElmIGBsZW5gIGlzIHByb3ZpZGVkLCB0aGVuIGl0IHdpbGwgYmUgYSBtdWNoIGNoZWFwZXIgb3BlcmF0aW9uLgABAS0gYGhhc2hgOiBUaGUgaGFzaCBvZiB0aGUgcHJlaW1hZ2UgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBzdG9yZS64LSBgbGVuYDogVGhlIGxlbmd0aCBvZiB0aGUgcHJlaW1hZ2Ugb2YgYGhhc2hgLkByZXF1ZXN0X3ByZWltYWdlBAEQaGFzaCwBHFQ6Okhhc2gAAhBBAVJlcXVlc3QgYSBwcmVpbWFnZSBiZSB1cGxvYWRlZCB0byB0aGUgY2hhaW4gd2l0aG91dCBwYXlpbmcgYW55IGZlZXMgb3IgZGVwb3NpdHMuAFUBSWYgdGhlIHByZWltYWdlIHJlcXVlc3RzIGhhcyBhbHJlYWR5IGJlZW4gcHJvdmlkZWQgb24tY2hhaW4sIHdlIHVucmVzZXJ2ZSBhbnkgZGVwb3NpdDkBYSB1c2VyIG1heSBoYXZlIHBhaWQsIGFuZCB0YWtlIHRoZSBjb250cm9sIG9mIHRoZSBwcmVpbWFnZSBvdXQgb2YgdGhlaXIgaGFuZHMuSHVucmVxdWVzdF9wcmVpbWFnZQQBEGhhc2gsARxUOjpIYXNoAAMMvENsZWFyIGEgcHJldmlvdXNseSBtYWRlIHJlcXVlc3QgZm9yIGEgcHJlaW1hZ2UuAC0BTk9URTogVEhJUyBNVVNUIE5PVCBCRSBDQUxMRUQgT04gYGhhc2hgIE1PUkUgVElNRVMgVEhBTiBgcmVxdWVzdF9wcmVpbWFnZWAuOGVuc3VyZV91cGRhdGVkBAEYaGFzaGVz7AEwVmVjPFQ6Okhhc2g+AAQMvEVuc3VyZSB0aGF0IHRoZSBidWxrIG9mIHByZS1pbWFnZXMgaXMgdXBncmFkZWQuAD0BVGhlIGNhbGxlciBwYXlzIG5vIGZlZSBpZiBhdCBsZWFzdCA5MCUgb2YgcHJlLWltYWdlcyB3ZXJlIHN1Y2Nlc3NmdWxseSB1cGRhdGVkLgQNAUNvbnRhaW5zIGEgdmFyaWFudCBwZXIgZGlzcGF0Y2hhYmxlIGV4dHJpbnNpYyB0aGF0IHRoaXMgcGFsbGV0IGhhcy7sAAACLADwDDxwYWxsZXRfaWRlbnRpdHkYcGFsbGV0EENhbGwEBFQAAWA0YWRkX3JlZ2lzdHJhcgQBHGFjY291bnQAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAAHHhBZGQgYSByZWdpc3RyYXIgdG8gdGhlIHN5c3RlbS4A/FRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIGBUOjpSZWdpc3RyYXJPcmlnaW5gLgCoLSBgYWNjb3VudGA6IHRoZSBhY2NvdW50IG9mIHRoZSByZWdpc3RyYXIuAJRFbWl0cyBgUmVnaXN0cmFyQWRkZWRgIGlmIHN1Y2Nlc3NmdWwuMHNldF9pZGVudGl0eQQBEGluZm/0AWxCb3g8VDo6SWRlbnRpdHlJbmZvcm1hdGlvbj4AASgpAVNldCBhbiBhY2NvdW50J3MgaWRlbnRpdHkgaW5mb3JtYXRpb24gYW5kIHJlc2VydmUgdGhlIGFwcHJvcHJpYXRlIGRlcG9zaXQuAFUBSWYgdGhlIGFjY291bnQgYWxyZWFkeSBoYXMgaWRlbnRpdHkgaW5mb3JtYXRpb24sIHRoZSBkZXBvc2l0IGlzIHRha2VuIGFzIHBhcnQgcGF5bWVudFBmb3IgdGhlIG5ldyBkZXBvc2l0LgDMVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8uAIwtIGBpbmZvYDogVGhlIGlkZW50aXR5IGluZm9ybWF0aW9uLgCIRW1pdHMgYElkZW50aXR5U2V0YCBpZiBzdWNjZXNzZnVsLiBzZXRfc3VicwQBEHN1YnOFAQFkVmVjPChUOjpBY2NvdW50SWQsIERhdGEpPgACJIxTZXQgdGhlIHN1Yi1hY2NvdW50cyBvZiB0aGUgc2VuZGVyLgBVAVBheW1lbnQ6IEFueSBhZ2dyZWdhdGUgYmFsYW5jZSByZXNlcnZlZCBieSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGxzIHdpbGwgYmUgcmV0dXJuZWQtAWFuZCBhbiBhbW91bnQgYFN1YkFjY291bnREZXBvc2l0YCB3aWxsIGJlIHJlc2VydmVkIGZvciBlYWNoIGl0ZW0gaW4gYHN1YnNgLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQkaWRlbnRpdHkuALAtIGBzdWJzYDogVGhlIGlkZW50aXR5J3MgKG5ldykgc3ViLWFjY291bnRzLjhjbGVhcl9pZGVudGl0eQADIDkBQ2xlYXIgYW4gYWNjb3VudCdzIGlkZW50aXR5IGluZm8gYW5kIGFsbCBzdWItYWNjb3VudHMgYW5kIHJldHVybiBhbGwgZGVwb3NpdHMuAOxQYXltZW50OiBBbGwgcmVzZXJ2ZWQgYmFsYW5jZXMgb24gdGhlIGFjY291bnQgYXJlIHJldHVybmVkLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWQkaWRlbnRpdHkuAJhFbWl0cyBgSWRlbnRpdHlDbGVhcmVkYCBpZiBzdWNjZXNzZnVsLkRyZXF1ZXN0X2p1ZGdlbWVudAgBJHJlZ19pbmRleGwBOFJlZ2lzdHJhckluZGV4AAEcbWF4X2ZlZTwBMEJhbGFuY2VPZjxUPgAEQJRSZXF1ZXN0IGEganVkZ2VtZW50IGZyb20gYSByZWdpc3RyYXIuAFUBUGF5bWVudDogQXQgbW9zdCBgbWF4X2ZlZWAgd2lsbCBiZSByZXNlcnZlZCBmb3IgcGF5bWVudCB0byB0aGUgcmVnaXN0cmFyIGlmIGp1ZGdlbWVudBhnaXZlbi4ANQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYVByZWdpc3RlcmVkIGlkZW50aXR5LgAdAS0gYHJlZ19pbmRleGA6IFRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGp1ZGdlbWVudCBpcyByZXF1ZXN0ZWQuVQEtIGBtYXhfZmVlYDogVGhlIG1heGltdW0gZmVlIHRoYXQgbWF5IGJlIHBhaWQuIFRoaXMgc2hvdWxkIGp1c3QgYmUgYXV0by1wb3B1bGF0ZWQgYXM6ADBgYGBub2NvbXBpbGXIUmVnaXN0cmFyczo6PFQ+OjpnZXQoKS5nZXQocmVnX2luZGV4KS51bndyYXAoKS5mZWUMYGBgAKRFbWl0cyBgSnVkZ2VtZW50UmVxdWVzdGVkYCBpZiBzdWNjZXNzZnVsLjhjYW5jZWxfcmVxdWVzdAQBJHJlZ19pbmRleCgBOFJlZ2lzdHJhckluZGV4AAUoaENhbmNlbCBhIHByZXZpb3VzIHJlcXVlc3QuAPhQYXltZW50OiBBIHByZXZpb3VzbHkgcmVzZXJ2ZWQgZGVwb3NpdCBpcyByZXR1cm5lZCBvbiBzdWNjZXNzLgA1AVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhUHJlZ2lzdGVyZWQgaWRlbnRpdHkuAEUBLSBgcmVnX2luZGV4YDogVGhlIGluZGV4IG9mIHRoZSByZWdpc3RyYXIgd2hvc2UganVkZ2VtZW50IGlzIG5vIGxvbmdlciByZXF1ZXN0ZWQuAKxFbWl0cyBgSnVkZ2VtZW50VW5yZXF1ZXN0ZWRgIGlmIHN1Y2Nlc3NmdWwuHHNldF9mZWUIARRpbmRleGwBOFJlZ2lzdHJhckluZGV4AAEMZmVlPAEwQmFsYW5jZU9mPFQ+AAYcGQFTZXQgdGhlIGZlZSByZXF1aXJlZCBmb3IgYSBqdWRnZW1lbnQgdG8gYmUgcmVxdWVzdGVkIGZyb20gYSByZWdpc3RyYXIuAFUBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBiZSB0aGUgYWNjb3VudKBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGluZGV4IGlzIGBpbmRleGAuAPQtIGBpbmRleGA6IHRoZSBpbmRleCBvZiB0aGUgcmVnaXN0cmFyIHdob3NlIGZlZSBpcyB0byBiZSBzZXQuVC0gYGZlZWA6IHRoZSBuZXcgZmVlLjhzZXRfYWNjb3VudF9pZAgBFGluZGV4bAE4UmVnaXN0cmFySW5kZXgAAQxuZXcAAVBBY2NvdW50SWRMb29rdXBPZjxUPgAHHLxDaGFuZ2UgdGhlIGFjY291bnQgYXNzb2NpYXRlZCB3aXRoIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0LnAtIGBuZXdgOiB0aGUgbmV3IGFjY291bnQgSUQuKHNldF9maWVsZHMIARRpbmRleGwBOFJlZ2lzdHJhckluZGV4AAEYZmllbGRzGAEpATxUOjpJZGVudGl0eUluZm9ybWF0aW9uIGFzIElkZW50aXR5SW5mb3JtYXRpb25Qcm92aWRlcj46OgpGaWVsZHNJZGVudGlmaWVyAAgcqFNldCB0aGUgZmllbGQgaW5mb3JtYXRpb24gZm9yIGEgcmVnaXN0cmFyLgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSgb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgaW5kZXhgLgD0LSBgaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBmZWUgaXMgdG8gYmUgc2V0Lg0BLSBgZmllbGRzYDogdGhlIGZpZWxkcyB0aGF0IHRoZSByZWdpc3RyYXIgY29uY2VybnMgdGhlbXNlbHZlcyB3aXRoLkRwcm92aWRlX2p1ZGdlbWVudBABJHJlZ19pbmRleGwBOFJlZ2lzdHJhckluZGV4AAEYdGFyZ2V0AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASRqdWRnZW1lbnSNAQFcSnVkZ2VtZW50PEJhbGFuY2VPZjxUPj4AASBpZGVudGl0eSwBHFQ6Okhhc2gACTy4UHJvdmlkZSBhIGp1ZGdlbWVudCBmb3IgYW4gYWNjb3VudCdzIGlkZW50aXR5LgBVAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgYmUgdGhlIGFjY291bnSwb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBpbmRleCBpcyBgcmVnX2luZGV4YC4AIQEtIGByZWdfaW5kZXhgOiB0aGUgaW5kZXggb2YgdGhlIHJlZ2lzdHJhciB3aG9zZSBqdWRnZW1lbnQgaXMgYmVpbmcgbWFkZS5VAS0gYHRhcmdldGA6IHRoZSBhY2NvdW50IHdob3NlIGlkZW50aXR5IHRoZSBqdWRnZW1lbnQgaXMgdXBvbi4gVGhpcyBtdXN0IGJlIGFuIGFjY291bnR0ICB3aXRoIGEgcmVnaXN0ZXJlZCBpZGVudGl0eS5JAS0gYGp1ZGdlbWVudGA6IHRoZSBqdWRnZW1lbnQgb2YgdGhlIHJlZ2lzdHJhciBvZiBpbmRleCBgcmVnX2luZGV4YCBhYm91dCBgdGFyZ2V0YC5dAS0gYGlkZW50aXR5YDogVGhlIGhhc2ggb2YgdGhlIFtgSWRlbnRpdHlJbmZvcm1hdGlvblByb3ZpZGVyYF0gZm9yIHRoYXQgdGhlIGp1ZGdlbWVudCBpcywgIHByb3ZpZGVkLgCwTm90ZTogSnVkZ2VtZW50cyBkbyBub3QgYXBwbHkgdG8gYSB1c2VybmFtZS4AlEVtaXRzIGBKdWRnZW1lbnRHaXZlbmAgaWYgc3VjY2Vzc2Z1bC40a2lsbF9pZGVudGl0eQQBGHRhcmdldAABUEFjY291bnRJZExvb2t1cE9mPFQ+AAowQQFSZW1vdmUgYW4gYWNjb3VudCdzIGlkZW50aXR5IGFuZCBzdWItYWNjb3VudCBpbmZvcm1hdGlvbiBhbmQgc2xhc2ggdGhlIGRlcG9zaXRzLgBhAVBheW1lbnQ6IFJlc2VydmVkIGJhbGFuY2VzIGZyb20gYHNldF9zdWJzYCBhbmQgYHNldF9pZGVudGl0eWAgYXJlIHNsYXNoZWQgYW5kIGhhbmRsZWQgYnlFAWBTbGFzaGAuIFZlcmlmaWNhdGlvbiByZXF1ZXN0IGRlcG9zaXRzIGFyZSBub3QgcmV0dXJuZWQ7IHRoZXkgc2hvdWxkIGJlIGNhbmNlbGxlZIBtYW51YWxseSB1c2luZyBgY2FuY2VsX3JlcXVlc3RgLgD4VGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgbWF0Y2ggYFQ6OkZvcmNlT3JpZ2luYC4AVQEtIGB0YXJnZXRgOiB0aGUgYWNjb3VudCB3aG9zZSBpZGVudGl0eSB0aGUganVkZ2VtZW50IGlzIHVwb24uIFRoaXMgbXVzdCBiZSBhbiBhY2NvdW50dCAgd2l0aCBhIHJlZ2lzdGVyZWQgaWRlbnRpdHkuAJRFbWl0cyBgSWRlbnRpdHlLaWxsZWRgIGlmIHN1Y2Nlc3NmdWwuHGFkZF9zdWIIAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGEBAQEQRGF0YQALHKxBZGQgdGhlIGdpdmVuIGFjY291bnQgdG8gdGhlIHNlbmRlcidzIHN1YnMuAF0BUGF5bWVudDogQmFsYW5jZSByZXNlcnZlZCBieSBhIHByZXZpb3VzIGBzZXRfc3Vic2AgY2FsbCBmb3Igb25lIHN1YiB3aWxsIGJlIHJlcGF0cmlhdGVkOHRvIHRoZSBzZW5kZXIuAGEBVGhlIGRpc3BhdGNoIG9yaWdpbiBmb3IgdGhpcyBjYWxsIG11c3QgYmUgX1NpZ25lZF8gYW5kIHRoZSBzZW5kZXIgbXVzdCBoYXZlIGEgcmVnaXN0ZXJlZFhzdWIgaWRlbnRpdHkgb2YgYHN1YmAuKHJlbmFtZV9zdWIIAQxzdWIAAVBBY2NvdW50SWRMb29rdXBPZjxUPgABEGRhdGEBAQEQRGF0YQAMEMxBbHRlciB0aGUgYXNzb2NpYXRlZCBuYW1lIG9mIHRoZSBnaXZlbiBzdWItYWNjb3VudC4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkWHN1YiBpZGVudGl0eSBvZiBgc3ViYC4ocmVtb3ZlX3N1YgQBDHN1YgABUEFjY291bnRJZExvb2t1cE9mPFQ+AA0cwFJlbW92ZSB0aGUgZ2l2ZW4gYWNjb3VudCBmcm9tIHRoZSBzZW5kZXIncyBzdWJzLgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZDh0byB0aGUgc2VuZGVyLgBhAVRoZSBkaXNwYXRjaCBvcmlnaW4gZm9yIHRoaXMgY2FsbCBtdXN0IGJlIF9TaWduZWRfIGFuZCB0aGUgc2VuZGVyIG11c3QgaGF2ZSBhIHJlZ2lzdGVyZWRYc3ViIGlkZW50aXR5IG9mIGBzdWJgLiBxdWl0X3N1YgAOKIxSZW1vdmUgdGhlIHNlbmRlciBhcyBhIHN1Yi1hY2NvdW50LgBdAVBheW1lbnQ6IEJhbGFuY2UgcmVzZXJ2ZWQgYnkgYSBwcmV2aW91cyBgc2V0X3N1YnNgIGNhbGwgZm9yIG9uZSBzdWIgd2lsbCBiZSByZXBhdHJpYXRlZLR0byB0aGUgc2VuZGVyICgqbm90KiB0aGUgb3JpZ2luYWwgZGVwb3NpdG9yKS4AYQFUaGUgZGlzcGF0Y2ggb3JpZ2luIGZvciB0aGlzIGNhbGwgbXVzdCBiZSBfU2lnbmVkXyBhbmQgdGhlIHNlbmRlciBtdXN0IGhhdmUgYSByZWdpc3RlcmVkPHN1cGVyLWlkZW50aXR5LgBFAU5PVEU6IFRoaXMgc2hvdWxkIG5vdCBub3JtYWxseSBiZSB1c2VkLCBidXQgaXMgcHJvdmlkZWQgaW4gdGhlIGNhc2UgdGhhdCB0aGUgbm9uLREBY29udHJvbGxlciBvZiBhbiBhY2NvdW50IGlzIG1hbGljaW91c2x5IHJlZ2lzdGVyZWQgYXMgYSBzdWItYWNjb3VudC5YYWRkX3VzZXJuYW1lX2F1dGhvcml0eQwBJGF1dGhvcml0eQABUEFjY291bnRJZExvb2t1cE9mPFQ+AAEYc3VmZml4FAEcVmVjPHU4PgABKGFsbG9jYXRpb24oAQx1MzIADxRVAUFkZCBhbiBgQWNjb3VudElkYCB3aXRoIHBlcm1pc3Npb24gdG8gZ3JhbnQgdXNlcm5hbWVzIHdpdGggYSBnaXZlbiBgc3VmZml4YCBhcHBlbmRlZC4ARQFUaGUgYXV0aG9yaXR5IGNhbiBncmFudCB1cCB0byBgYWxsb2NhdGlvbmAgdXNlcm5hbWVzLiBUbyB0b3AgdXAgdGhlIGFsbG9jYXRpb24gb3JJAWNoYW5nZSB0aGUgYWNjb3VudCB1c2VkIHRvIGdyYW50IHVzZXJuYW1lcywgdGhpcyBjYWxsIGNhbiBiZSB1c2VkIHdpdGggdGhlIHVwZGF0ZWTMcGFyYW1ldGVycyB0byBvdmVyd3JpdGUgdGhlIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb24uZHJlbW92ZV91c2VybmFtZV9hdXRob3JpdHkIARhzdWZmaXgUARxWZWM8dTg+AAEkYXV0aG9yaXR5AAFQQWNjb3VudElkTG9va3VwT2Y8VD4AEATEUmVtb3ZlIGBhdXRob3JpdHlgIGZyb20gdGhlIHVzZXJuYW1lIGF1dGhvcml0aWVzLkBzZXRfdXNlcm5hbWVfZm9yEAEMd2hvAAFQQWNjb3VudElkTG9va3VwT2Y8VD4AASB1c2VybmFtZRQBHFZlYzx1OD4AASRzaWduYXR1cmWRAQFwT3B0aW9uPFQ6Ok9mZmNoYWluU2lnbmF0dXJlPgABOHVzZV9hbGxvY2F0aW9uRAEQYm9vbAARNA0BU2V0IHRoZSB1c2VybmFtZSBmb3IgYHdob2AuIE11c3QgYmUgY2FsbGVkIGJ5IGEgdXNlcm5hbWUgYXV0aG9yaXR5LgBZAUlmIGB1c2VfYWxsb2NhdGlvbmAgaXMgc2V0LCB0aGUgYXV0aG9yaXR5IG11c3QgaGF2ZSBhIHVzZXJuYW1lIGFsbG9jYXRpb24gYXZhaWxhYmxlIHRvRQFzcGVuZC4gT3RoZXJ3aXNlLCB0aGUgYXV0aG9yaXR5IHdpbGwgbmVlZCB0byBwdXQgdXAgYSBkZXBvc2l0IGZvciByZWdpc3RlcmluZyB0aGUkdXNlcm5hbWUuALBVc2VycyBjYW4gZWl0aGVyIHByZS1zaWduIHRoZWlyIHVzZXJuYW1lcyBvckhhY2NlcHQgdGhlbSBsYXRlci4APFVzZXJuYW1lcyBtdXN0OtggIC0gT25seSBjb250YWluIGxvd2VyY2FzZSBBU0NJSSBjaGFyYWN0ZXJzIG9yIGRpZ2l0cy41ASAgLSBXaGVuIGNvbWJpbmVkIHdpdGggdGhlIHN1ZmZpeCBvZiB0aGUgaXNzdWluZyBhdXRob3JpdHkgYmUgX2xlc3MgdGhhbl8gdGhlYCAgICBgTWF4VXNlcm5hbWVMZW5ndGhgLjxhY2NlcHRfdXNlcm5hbWUEASB1c2VybmFtZaEBASxVc2VybmFtZTxUPgASCE0BQWNjZXB0IGEgZ2l2ZW4gdXNlcm5hbWUgdGhhdCBhbiBgYXV0aG9yaXR5YCBncmFudGVkLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlIGZ1bGyIdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5zdWZmaXhgLlxyZW1vdmVfZXhwaXJlZF9hcHByb3ZhbAQBIHVzZXJuYW1loQEBLFVzZXJuYW1lPFQ+ABMMYQFSZW1vdmUgYW4gZXhwaXJlZCB1c2VybmFtZSBhcHByb3ZhbC4gVGhlIHVzZXJuYW1lIHdhcyBhcHByb3ZlZCBieSBhbiBhdXRob3JpdHkgYnV0IG5ldmVyVQFhY2NlcHRlZCBieSB0aGUgdXNlciBhbmQgbXVzdCBub3cgYmUgYmV5b25kIGl0cyBleHBpcmF0aW9uLiBUaGUgY2FsbCBtdXN0IGluY2x1ZGUgdGhlnGZ1bGwgdXNlcm5hbWUsIGFzIGluIGB1c2VybmFtZS5