YTo2OntpOjA7czoxMjIzNToiCQkJCTxzZWN0aW9uIGlkPSJtaWRkbGUiPg0KCQkJCTxkaXYgY2xhc3M9IndyYXAiIGlkPSJib2R5Rm9ybWF0TlQiPg0KCQkJCTxkaXYgY2xhc3M9InJvdzEgZHQgY29sdW1uczIzIj48IS0tTUlERExFIFJPVzEgU1RBUlRTLS0+DQoJCQkJPGRpdiBjbGFzcz0iY29sLTIgd2lkZUNvbHVtbiBpcCBscyBkZXRhaWxfcG1fMTUiPjwhLS1NSURETEUgUk9XMSBDT0wtMiBTVEFSVFMtLT4NCgkJCQkNCgkJCQkJCQkJCTxkaXYgY2xhc3M9ImgxIj48aDE+U3lzdGVtIEFkbWluaXN0cmF0b3IgKExldmVsIDMpPC9oMT48L2Rpdj4NCgkJCQkJPHAgY2xhc3M9ImJyZWFkY3J1bWIgYXIgdXUgc21hbGwiPiA8YSBocmVmPSJodHRwOi8vd3d3LjEwam9icy5jby5pbi8iPkhvbWU8L2E+DQoJCQkJCQ0KCQkJCQkJCQkJCQk8YiBjbGFzcz0iZmZ2IHAycHgiPiZyc2FxdW87PC9iPjxhIGhyZWY9Imh0dHA6Ly93d3cuMTBqb2JzLmNvLmluL29wZW5pbmdzLmh0bSIgdGl0bGU9Ik9wZW5pbmdzIj5PcGVuaW5nczwvYT4gIAkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkJPGIgY2xhc3M9ImZmdiBwMnB4Ij4mcnNhcXVvOzwvYj4gU3lzdGVtIEFkbWluaXN0cmF0b3IgKExldmVsIDMpPC9wPg0KCQkJCQkJCQkJPHAgY2xhc3M9Im1iNXB4Ij48aSBjbGFzcz0iZmEgZmEtYnJpZWZjYXNlIG1yN3B4IGZsIHcxNXB4IGFscGhhNTAiPjwvaT4gMyAtIDQgWWVhcnM8L3A+DQoJCQkJDQoJCQkJCQkJCQk8cCBjbGFzcz0ibWIxMHB4Ij48aSBjbGFzcz0iZmEgZmEtbWFwLW1hcmtlciBtcjdweCBmbCBwbDFweCB3MTVweCBhbHBoYTUwIj48L2k+UHVuZTwvcD4NCgkJCQkJCQkJCQkNCgkJCQkJPGRpdj4NCgkJCQkJPGZvcm0gbmFtZT0iZnJtdmFjZGV0YWlsIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iZW5xdWlyeS1mb3JtLTEwMDA5Lmh0bSI+DQoJCQkJCTxpbnB1dCBzdHlsZT0icGFkZGluZzo3cHggMTVweDsiIGNsYXNzPSJidXR0b24gYiBmZm9zIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJBUFBMWSBOT1cgISIgLz4NCgkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY2F0YWxvZ19taSIgdmFsdWU9IjM0Mzk5NiI+DQoJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVucV90eXBlIiB2YWx1ZT0iMiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmFjYW5jeV9pZCIgdmFsdWU9IjM2NDAxOSI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3ViamVjdCIgdmFsdWU9IkFwcGxpZWQgZm9yIFN5c3RlbSBhZG1pbmlzdHJhdG9yIChMZXZlbCAzKSI+DQoJCQkJCTwvZm9ybT4NCgkJCQkJPC9kaXY+DQoJCQkNCgkJCQkJCQ0KCQkJCQ0KCQkJCTxicj4NCgkJCQk8ZGl2IGNsYXNzPSJiZHJUIHB0MjBweCI+DQoJCQkJPHAgY2xhc3M9InhsYXJnZSBiIj5Kb2IgRGVzY3JpcHRpb248L3A+DQoJCQkJPHAgY2xhc3M9ImFqIG10MTBweCI+U3lzdGVtIGFkbWluaXN0cmF0b3IgKExldmVsIDMpIFJlcG9ydGluZyBUbzoJUHJvamVjdCBNYW5hZ2VyIFdvcmtpbmcgSG91cnM6IDk6MzAgSHJzIFNoaWZ0czoJUm90YXRpb25hbCBXZWVrbHkgT2ZmczoJUm90YXRpb25hbCBCYXNpYyBTa2lsbHMgU2V0cyBSZXF1aXJlbWVudDogUXVhbGlmaWNhdGlvbjoJR3JhZHVhdGUvUG9zdCBHcmFkdWF0ZSAvRGlwbG9tYSBpbiBhbnkgc3RyZWFtIGFkIEdsb2JhbCBjZXJ0aWZpY2F0aW9uIGluIHdpbmRvd3MgT3RoZXIgQ2VydGlmaWNhdGlvbjoJTUNTRSAyMDA4IGFuZCBvdGhlciBNaWNyb3NvZnQgc3lzdGVtIGFkbWluaXN0cmF0b3IgcmVsYXRlZCBjZXJ0aWZpY2F0aW9ucyhNQ1NFOiBTZXJ2ZXIgSW5mcmFzdHJ1Y3R1cmUpIEV4cGVyaWVuY2U6CTUgeWVhcnMsIDMtNCB5ZWFycyBpbiByZWxldmFudCBpbmR1c3RyeSAoUklNKSBLZXkgQ29tcGV0ZW5jaWVzICYgU2tpbGxzOiBFeHRlbnNpdmUgZXhwZXJpZW5jZSB3aXRoIGEgdmFyaWV0eSBvZiBzZXJ2ZXItc2lkZSB0ZWNobm9sb2dpZXMgSW4tZGVwdGgga25vd2xlZGdlIGFuZCB3b3JraW5nIGV4cGVyaWVuY2Ugd2l0aCBXaW5kb3dzIFNlcnZlciAyMDA4LDIwMDMsU0JTIEluLWRlcHRoIGtub3dsZWRnZSBhbmQgd29ya2luZyBleHBlcmllbmNlIHdpdGggQWN0aXZlIERpcmVjdG9yeSwgRE5TLERIQ1AsIEFkdmFuY2VkIFdpbmRvd3MgU2VydmVyIFNlcnZpY2VzLCBBZG1pbmlzdHJhdGlvbiBhbmQgQ29uZmlndXJhdGlvbiwgSW5zdGFsbGluZyBhbmQgQ29uZmlndXJpbmcgV2luZG93cyBTZXJ2ZXJzLiBEZXNpZ25pbmcgYW5kIEltcGxlbWVudGluZyBhIFNlcnZlciBJbmZyYXN0cnVjdHVyZSwgSW4tZGVwdGgga25vd2xlZGdlIGFuZCB3b3JraW5nIGV4cGVyaWVuY2Ugd2l0aCBMYXRlc3QgRXhjaGFuZ2UvU1FMIHNlcnZlciBhbmQgVk13YXJlIG9yIENpdHJpeCBXb3JraW5nIGV4cGVyaWVuY2Ugb24gTU9NLCBTQ0NNLCBTQ09NLiBXb3JraW5nIGV4cGVyaWVuY2Ugb24gU2hhcmUgcG9pbnQsIExZTkMsIFdzdXMuIEFkbWluaXN0ZXJpbmcgTWljcm9zb2Z0IEV4Y2hhbmdlIHNlcnZlciwgU0JTIHNlcnZlciwgTHluYyBvciBCbGFja2JlcnJ5IHNlcnZlci4gU2VydmVyIGhhcmRlbmluZywgc3lzdGVtIG1vbml0b3JpbmcsIHBlcmZvcm1hbmNlIHR1bmluZyBhbmQgcHJvY2VzcyBtYXBwaW5nLiBJbXBsZW1lbnRhdGlvbiBvZiBzZWN1cml0eSBiZXN0IHByYWN0aWNlcyBmb3Igb3BlcmF0aW5nIHN5c3RlbXMuIEV2ZW50IGxvZyBtb25pdG9yaW5nICYgdHJvdWJsZXNob290aW5nIFdvcmtpbmcgZXhwZXJpZW5jZSBhbmQgdHJvdWJsZXNob290aW5nIHNraWxscyBvbiBQYXRjaCBtYW5hZ2VtZW50LCBzZXJ2aWNlcyBwYWNrIGRlcGxveW1lbnQsIFBhdGNoIHRlc3RpbmcgYW5kIGFuYWx5c2lzLiBXb3JraW5nIGV4cGVyaWVuY2Ugb2YgQW50aXZpcnVzIG1hbmFnZW1lbnQsIFN5c3RlbSBwYXRjaGVzLCBzZWN1cml0eSBmaXhlcyBldGMuIERlc2lnbmluZyBhbmQgSW1wbGVtZW50aW5nIGFuZCB0cm91Ymxlc2hvb3Rpbmcgc2tpbGxzIGluIHRoZSBiYWNrdXAgcHJvY2VzcywgZGlzYXN0ZXIgcmVjb3ZlcnkuIEFkbWluaXN0ZXJpbmcsIHBsYW5uaW5nIGFuZCBkZXNpZ25pbmcgb2YgRW50ZXJwcmlzZSBncmFkZSBzdG9yYWdlIHN1Y2ggYXMgc2VtYW50aWMsIEVNQywgZXRjLiBIYW5kcyBvbiBleHBlcmllbmNlIG9uIFJhaWQsIE5BUy9JU0NTSS8gU0FOIGRhdGEgc3RvcmFnZSBkZXZpY2VzLiBTaG91bGQgaGF2ZSB0aGUgZXhwb3N1cmUgZm9yIHJlbW90ZSB0ZWNobmljYWwgc3VwcG9ydCBTaG91bGQgYmUgYWJsZSB0byBtYW5hZ2UgYSB0ZWFtIG9mIDEwKyBwZW9wbGUgTmV0d29ya2luZyBrbm93bGVkZ2UgaXMgYSBwbHVzIEJlaGF2aW9yYWwgU2tpbGxzIFNob3VsZCBoYXZlIFBsYW5uaW5nIGFuZCBPcmdhbml6YXRpb24gc2tpbGxzLiBTdHJvbmcgd3JpdHRlbiBhbmQgb3JhbCBjb21tdW5pY2F0aW9uIHNraWxscy4gKEFiaWxpdHkgdG8gY29tbXVuaWNhdGUgZWZmZWN0aXZlbHkgd2l0aCB0aGUgVGVhbSBhcyB3ZWxsIGFzIHRoZSBjdXN0b21lcikgTGVhZGVyc2hpcCBTa2lsbHMuIChMZWFkaW5nIGJ5IGV4YW1wbGUpIEVmZmljaWVudCB0aW1lIG1hbmFnZW1lbnQgc2tpbGxzLiBHb29kIGFuYWx5dGljYWwgU2tpbGxzIFN0cm9uZyBpbnRlcnBlcnNvbmFsIHNraWxscy4gQWJpbGl0eSB0byB3b3JrIHdpdGggSW50ZXJuYXRpb25hbCBDdXN0b21lcnMgYW5kIGNyZWF0ZSBhIHJhcHBvcnQgd2l0aCB0aGVtLiBSb2xlcyAmIFJlc3BvbnNpYmlsaXR5OiBQcmltYXJ5IFVuZGVyc3RhbmQgdGhlIGRvbWFpbiwgdGhlIGJ1c2luZXNzIHJlcXVpcmVtZW50cyBhbmQgdGhlIHRlY2huaWNhbCBjaGFsbGVuZ2VzIFNlcnZlIGFzIHRoZSB0ZWFt4oCZcyByZXByZXNlbnRhdGl2ZSBvbiB0aGUgbGVhZGVyc2hpcCBncm91cHMgcmVxdWlyaW5nIFRlYW0gTGVhZGVyIHBhcnRpY2lwYXRpb24uIEFjdCBhcyBwcmltYXJ5IGNvbnRhY3QgcGVyc29uIGZvciB0aGUgdGVhbS4gUHJvdmlkZXMgdGVjaG5pY2FsIHN1cHBvcnQsIEFzc2lzdCBqdW5pb3IgYWRtaW4gdG8gcmVzb2x2ZSB0ZWNobmljYWwgcXVlcmllcyBEZXRlcm1pbmUgYW5kIHByb3ZpZGUgYSBuZWNlc3NhcnkgbGV2ZWwgb2YgdGVjaG5pY2FsIGRvY3VtZW50YXRpb24gZHVyaW5nIHJlcXVpcmVtZW50cyBnYXRoZXJpbmcsIGJhc2VkIG9uIHRlY2huaWNhbCBzZXJ2aWNlcyBDb29yZGluYXRlIGFuZCBzdWJtaXQgdGVhbSByZXBvcnRzLCBzdWNoIGFzIHdlZWtseSByZXBvcnRzIGFuZCB0ZWFtIHBsYW4sIGFuZCBvdGhlciBuZWNlc3NhcnkgZG9jdW1lbnRhdGlvbiByZXF1aXJlZCBmcm9tIHRoZSB0ZWFtLiBDb21tdW5pY2F0ZSBkYWlseSByZWdhcmRpbmcgcHJvamVjdCBzdGF0dXMgd2l0aCBhcHByb3ByaWF0ZSB0ZWFtIG1lbWJlcnMgUHJvYmxlbSBzb2x2aW5nIGFiaWxpdHksIHdpdGggYSBrbmFjayBmb3IgdGVjaG5pY2FsIGlubm92YXRpb24gUGVyZm9ybSBhY3Rpdml0aWVzIHN1Y2ggYXMgc2VydmVyIGJ1aWxkcyAoYXBwbGljYXRpb24gYW5kL29yIGNvbmZpZ3VyYXRpb24pLCBEZWZyYWdnaW5nIEV4Y2hhbmdlIERhdGEgU3RvcmVzLCBBY3RpdmUgRGlyZWN0b3J5IFVwZGF0ZSBhbmQvb3IgTWlncmF0aW9uLCBTUUwgU2VydmVyIFR1bmluZywgU2hhcmUgcG9pbnQgQXBwbGljYXRpb24gYnVpbGRpbmcsIGV0Yy4gcmVtb3RlbHkgdmlhIHJlbW90ZSBjb250cm9sIHNvZnR3YXJlLiBBdXRob3Igc2NyaXB0cyAoaW4gdGhlIHNvZnR3YXJlKSB0byBhdXRvbWF0ZSBjZXJ0YWluIHN5c3RlbSBhbmQgYXBwbGljYXRpb24gZnVuY3Rpb25zLiBDcmVhdGUgY3VzdG9tIG1vbml0b3Igc2V0cyAoaW4gdGhlIHNvZnR3YXJlKSB0byBwZXJmb3JtIHNlcnZlciAvIHNlcnZpY2UgLyBhcHBsaWNhdGlvbiBtb25pdG9yaW5nLiBEZXNpZ24gQmFja3VwLEFudGl2aXJ1cyBhbmQgcGF0Y2ggbWFuYWdlbWVudCBwb2xpY3kgTW9uaXRvciBNYWludGVuYW5jZSByZWxhdGVkIGFjdGl2aXRpZXMgYW5kIGRlbGl2ZXJhYmxlcy4gUmVzZWFyY2ggYW5kIGFuYWx5c2lzIG9uIHRvcGljcyBzdWNoIGFzIHNlY3VyaXR5IHRocmVhdHMsIHBhdGNoIGFzc2Vzc21lbnQsIHNlcnZpY2UgcGFjayBhc3Nlc3NtZW50LCBhcHBsaWNhdGlvbiB1cGdyYWRlIGFzc2Vzc21lbnQsIGV0Yy4gVG8gY29tbXVuaWNhdGUgYmFjayB0byB0aGUgTVNQ4oCZcywgc29mdHdhcmUgYW5kIEhlbHAgRGVzayBvcmdhbml6YXRpb25zIGFib3V0IHRoZSBmaW5kaW5ncy4gRG9jdW1lbnRpbmcgY2hhbmdlcywgaW5jaWRlbnRzLCBhbmQgcHJvYmxlbXMgTW9uaXRvciBBY3Rpdml0aWVzIGFuZCBpbmRpdmlkdWFsIHBlcmZvcm1hbmNlIG9mIHRoZSBUZWFtIE1lbWJlcnMgUmVzcG9uc2libGUgZm9yIHRoZSBEZWxpdmVyeSBvZiBRdWFsaXR5IFNlcnZpY2VzIHdpdGhpbiB0aGUgU0xBIGJ5IHRoZSBUZWFtIG1lbWJlcnMgU2Vjb25kYXJ5IFBhcnRpY2lwYXRlIGFzIGEgTGVhZGVyIG9mIHRoZSB0ZWFtIHdpdGggaW5zdHJ1Y3Rpb24sIHJlZmVyZW5jZSwgYW5kIGNvbGxlY3Rpb24gbWFuYWdlbWVudCByZXNwb25zaWJpbGl0aWVzIHRvIFN0aXIgdGhlIGRpc2N1c3Npb24gaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiBhbmQgb2J0YWluIGRlc2lyZWQgcmVzdWx0cy4gRm9zdGVyIHRlYW0gYW5kIGluZGl2aWR1YWwgZ3Jvd3RoIHRocm91Z2ggY29hY2hpbmcsIG1lbnRvcmluZywgYW5kIHNlcnZlIGFzIGEgcmVzb3VyY2UgcGVyc29uLiBFbmNvdXJhZ2luZyBjb2xsYWJvcmF0aW9uIGFtb25nIHRlYW0gbWVtYmVycy4gQ29uZHVjdCBUcmFpbmluZyBmb3IgbmV3IGpvaW5lcnMuIElubm92YXRpb24gYW5kIGNyZWF0aXZpdHkgdG8gcmVzb2x2ZSB0aGUgaXNzdWVzLiBBdXRob3JpdHk6IEF1dGhvcml0eSB0byBhcHByb3ZlIHRoZSBsZWF2ZXMgb2YgdGhlIHRlYW0gTWVtYmVycyBpbiB0aGUgYWJzZW5jZSBvZiBwcm9qZWN0IG1hbmFnZXIuIExvZyBpbiB0byBSTU0gdG9vbCwgdGlja2V0aW5nIHN5c3RlbS8gUFNBIHRvb2wgdG8gd29yayBhcyB3ZWxsIGFzIGRpc3RyaWJ1dGUgdGhlIHRhc2tzIHRvIHRoZSB0ZWFtIG1lbWJlcnMgR2VuZXJhdGUgcHJvamVjdCBSZXBvcnRzIExvZ2luIHRvIEhlbHAgSW5kZXggc3lzdGVtIHRvIHJldmlldyB0aGUgYWN0aXZpdGllcyBvZiB0aGUgVGVhbSBtZW1iZXJzIGFuZCB0YWtlIGFwcHJvcHJpYXRlIGFjdGlvbiBMZWFkIHRlYW0gZGlzY3Vzc2lvbiAmIGRlY2lzaW9uIG1ha2luZyBwcm9jZXNzIENvbmR1Y3QgdGhlIEFwcHJhaXNhbCBhbmQgUmV2aWV3IGRpc2N1c3Npb24gZm9yIFRlYW0gbWVtYmVycyBhbmQgZ2l2ZSBmZWVkYmFjayB0byBtYW5hZ2VtZW50LiBUbyByZWNvbW1lbmQgdGhlIHRyYWluaW5nIGZvciBUZWFtIG1lbWJlcnMgYW5kIGFsc28gdG8gcmVjb21tZW5kIHRoZSBkaXNjaXBsaW5hcnkgYWN0aW9uIGFnYWluc3QgdGhlIHRlYW0gbWVtYmVyLjwvcD4NCgkJCQkNCgkJCQk8dGFibGUgY2xhc3M9IncxMDAgZm9ybVRhYmxlIGJkcjAgbXQxMHB4Ij4JCQkJDQoJCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQk8dGQgY2xhc3M9IncyMiBhbHBoYTc1IHA1cHgiPlNhbGFyeTwvdGQ+DQoJCQkJCQkJPHRkIGNsYXNzPSJwNXB4Ij4gMyAgTGFjICA1MCBUaG91c2FuZCAgVG8gIDQgIExhYyAgNTAgVGhvdXNhbmQgIFAuQS48L3RkPg0KCQkJCQkJCTwvdHI+CQkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkJPHRyPg0KCQkJCQk8dGQgY2xhc3M9IncyMiBhbHBoYTc1IHA1cHgiPkluZHVzdHJ5PC90ZD4NCgkJCQkJPHRkIGNsYXNzPSJwNXB4Ij5JVCBTb2Z0d2FyZSAtIENsaWVudCBTZXJ2ZXI8L3RkPg0KCQkJCQk8L3RyPg0KCQkJCQkJCQkJPHRyPg0KCQkJCTx0ZCBjbGFzcz0idzIyIGFscGhhNzUgcDVweCI+V29yayBFeHBlcmllbmNlPC90ZD4NCgkJCQk8dGQgY2xhc3M9InA1cHgiPjMgLSA0IFllYXJzPC90ZD4NCgkJCQk8L3RyPg0KCQkJCQkJCQkJPHRyPg0KCQkJCQk8dGQgY2xhc3M9IncyMiBhbHBoYTc1IHA1cHgiPlF1YWxpZmljYXRpb248L3RkPg0KCQkJCQk8dGQgY2xhc3M9InA1cHgiPlByb2Zlc3Npb25hbCBEZWdyZWUsIE90aGVyIEJhY2hlbG9yIERlZ3JlZTwvdGQ+DQoJCQkJCTwvdHI+CQkJCQkNCgkJCQkJCQkJCQ0KCQkJCTwvdGFibGU+DQoJCQkJDQoJCQkJDQoJCQkJPC9kaXY+DQoJCQkJDQoJCQkJPGJyPg0KCQkJCTxkaXYgY2xhc3M9ImJkclQgcHQyMHB4Ij4NCgkJCQkJCQkJCTxwIGNsYXNzPSJ4bGFyZ2UgYiI+S2V5IFNraWxsczwvcD4NCgkJCQkJPGRpdiBjbGFzcz0ibXQxMHB4IGRpZiI+DQoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJibiBkaWIgcDVweDEwcHggYzJweCBoZWFkVnIgbXI3cHggbWI3cHgiPlN5c3RlbSBhZG1pbmlzdHJhdG9yPC9zcGFuPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImJuIGRpYiBwNXB4MTBweCBjMnB4IGhlYWRWciBtcjdweCBtYjdweCI+bmV0d29yayBlbmdpbmVlcjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkNCgkJCQkNCgkJCQk8YnI+DQoJCQkJPGRpdiBjbGFzcz0iYmRyVCBwdDIwcHgiPg0KCQkJCTxwIGNsYXNzPSJ4bGFyZ2UgYiI+Q29tcGFueSBQcm9maWxlPC9wPg0KCQkJCTxkaXYgY2xhc3M9Im10MTBweCI+DQoJCQkJDQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9IncxMDAgZm9ybVRhYmxlIGJkcjAgbXQ1cHgiPg0KCQkJCQkJCQkJCQk8dHI+DQoJCQkJCQk8dGQgY2xhc3M9IncyMiBhbHBoYTc1IHA1cHggdmF0Ij5Db21wYW55IE5hbWU8L3RkPg0KCQkJCQkJPHRkIGNsYXNzPSJwNXB4IHZhdCI+PHAgY2xhc3M9ImRpZiBiIj4xMGpvYnMuY28uaW48L3A+PC90ZD4NCgkJCQkJCTwvdHI+DQoJCQkJCQkJCQkJCQk8dHI+DQoJCQkJCQk8dGQgY2xhc3M9IncyMiBhbHBoYTc1IHA1cHggdmF0Ij5BYm91dCBDb21wYW55PC90ZD4NCgkJCQkJCTx0ZCBjbGFzcz0icDVweCB2YXQiPkF0IDEwam9icywgd2UgYXJlIGEgY29tcGV0ZW50IEhSIEZpcm0gdGhhdCBzcGVjaWFsaXplcyBpbiBNdWx0aSBQcm9jZXNzIEh1bWFuIFJlc291cmNlIE91dHNvdXJjaW5nLiBPdXIgZW5kLXRvLWVuZCBIUiBzZXJ2aWNlcyBpbmNsdWRlIGhhbmRsaW5nIGFsbCB0eXBlcyBvZiBSZWNydWl0bWVudCwgU3RhZmZpbmcgYW5kIGVtcGxveWVlIHJlbGF0ZWQgaXNzdWVzLiBGb3VuZGVkIGluIDIwMTAsIDEwam9icyBpcyBhIHN1YnNpZGlhcnkgb2YgJmFjaXJjO4CcSGktMTAgU29sdXRpb24mYWNpcmM7gJ0sIGEgcGFydG5lcnNoaXAgZmlybSBpbmNvcnBvcmF0ZWQgdW5kZXIgdGhlIFBhcnRuZXJzaGlwIEFjdCwgMTkzMi48L3RkPg0KCQkJCQkJPC90cj4NCgkJCQkJCQkJCQkJCTx0cj4NCgkJCQkJCTx0ZCBjbGFzcz0idzIyIGFscGhhNzUgcDVweCI+RW1haWwgSUQ8L3RkPg0KCQkJCQkJPHRkIGNsYXNzPSJwNXB4Ij48YSBocmVmPSJtYWlsdG86Y29udGFjdEAxMGpvYnMuY28uaW4iPiBjb250YWN0QDEwam9icy5jby5pbiA8L2E+PC90ZD4NCgkJCQkJCTwvdHI+DQoJCQkJCQkJCQkJDQoJCQkJCTwvdGFibGU+DQoJCQkJCQkJCQkNCgkJCQk8YnIgLz4NCgkJCQkNCgkJCQkJCQkJCQ0KCQkJCQk8ZGl2IGNsYXNzPSJiZHJUIHB0MjBweCI+DQoJCQkJCTxmb3JtIG5hbWU9ImZybXZhY2RldGFpbCIgbWV0aG9kPSJwb3N0IiBhY3Rpb249ImVucXVpcnktZm9ybS0xMDAwOS5odG0iPg0KCQkJCQk8aW5wdXQgc3R5bGU9InBhZGRpbmc6N3B4IDE1cHg7IiBjbGFzcz0iYnV0dG9uIGIgZmZvcyIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQVBQTFkgTk9XICEiIC8+DQoJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNhdGFsb2dfbWkiIHZhbHVlPSIzNDM5OTYiPg0KCQkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJlbnFfdHlwZSIgdmFsdWU9IjIiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZhY2FuY3lfaWQiIHZhbHVlPSIzNjQwMTkiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InN1YmplY3QiIHZhbHVlPSJBcHBsaWVkIGZvciBTeXN0ZW0gYWRtaW5pc3RyYXRvciAoTGV2ZWwgMykiPg0KCQkJCQk8L2Zvcm0+DQoJCQkJCTwvZGl2Pg0KCQkJDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4JCQkNCgkJCQkNCgkJCQk8IS0tTUlERExFIFJPVzEgQ09MLTIgRU5EUy0tPiANCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJjb2wtMyB0aGluQ29sdW1uIj48IS0tTUlERExFIFJPVzEgQ09MLTEgU1RBUlRTLS0+DQoJCQkJDQoJCQkJPGRpdiBjbGFzcz0iY29sdW1uX0JveCBtYyI+DQoJCQkJPGRpdiBjbGFzcz0idGNsIGJ1bGxldCBkaXZpZGVyIj4NCgkJCQk8ZGl2IGNsYXNzPSJoIGgyIj48YiBjbGFzcz0icGx1c01pbnVzIj48L2I+DQoJCQkJPGgyPkpvYnMgYnkgTG9jYXRpb248L2gyPg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9ImljIHNob3dIaWRlX3JwIj4NCgkJCQk8ZGl2IGNsYXNzPSJtdDEwcHgiPg0KCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImRpYiBwNXB4MTBweCBjMnB4IGhlYWRWciBtcjdweCBtYjdweCAiPjxhIGNsYXNzPSJkaWYiIGhyZWY9ImpvYnMtaW4tcHVuZS5odG0iIHRpdGxlPSJKb2JzIGluIFB1bmUiPlB1bmU8L2E+IDxiIGNsYXNzPSJhbHBoYTUwIGJuIHNtYWxsIj4oNSk8L2I+PC9zcGFuPg0KCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJkaWIgcDVweDEwcHggYzJweCBoZWFkVnIgbXI3cHggbWI3cHggIj48YSBjbGFzcz0iZGlmIiBocmVmPSJqb2JzLWluLWJob3BhbC5odG0iIHRpdGxlPSJKb2JzIGluIEJob3BhbCI+QmhvcGFsPC9hPiA8YiBjbGFzcz0iYWxwaGE1MCBibiBzbWFsbCI+KDEpPC9iPjwvc3Bhbj4NCgkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZGliIHA1cHgxMHB4IGMycHggaGVhZFZyIG1yN3B4IG1iN3B4ICI+PGEgY2xhc3M9ImRpZiIgaHJlZj0iam9icy1pbi12YWRvZGFyYS5odG0iIHRpdGxlPSJKb2JzIGluIFZhZG9kYXJhIj5WYWRvZGFyYTwvYT4gPGIgY2xhc3M9ImFscGhhNTAgYm4gc21hbGwiPigxKTwvYj48L3NwYW4+DQoJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImRpYiBwNXB4MTBweCBjMnB4IGhlYWRWciBtcjdweCBtYjdweCAiPjxhIGNsYXNzPSJkaWYiIGhyZWY9ImpvYnMtaW4tYWxpcmFqcHVyLmh0bSIgdGl0bGU9IkpvYnMgaW4gQWxpcmFqcHVyIj5BbGlyYWpwdXI8L2E+IDxiIGNsYXNzPSJhbHBoYTUwIGJuIHNtYWxsIj4oMSk8L2I+PC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJDQoJCQkJPGRpdiBjbGFzcz0iY29sdW1uX0JveCBtYyI+DQoJCQkJPGRpdiBjbGFzcz0idGNsIGJ1bGxldCBkaXZpZGVyIj4NCgkJCQk8ZGl2IGNsYXNzPSJoIGgyIj48YiBjbGFzcz0icGx1c01pbnVzIj48L2I+DQoJCQkJPGgyPkpvYnMgYnkgRnVuY3Rpb25hbCBBcmVhPC9oMj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJpYyBzaG93SGlkZV9ycCI+DQoJCQkJPGRpdiBjbGFzcz0ibXQxMHB4Ij4NCgkJCQkJCQkJCTxzcGFuIGNsYXNzPSJkaWIgcDVweDEwcHggYzJweCBoZWFkVnIgbXI3cHggbWI3cHggIj48YSBjbGFzcz0iZGlmIiBocmVmPSJqb2JzLWluLWV4cG9ydC1pbXBvcnQtbWVyY2hhbmRpc2luZy1maWQuaHRtIiB0aXRsZT0iRXhwb3J0IC8gSW1wb3J0IC8gTWVyY2hhbmRpc2luZyBKb2JzIj5FeHBvcnQgLyBJbXBvcnQgLyBNZXJjaGFuZGlzaW5nPC9hPiA8YiBjbGFzcz0iYWxwaGE1MCBibiBzbWFsbCI+KDEpPC9iPjwvc3Bhbj4NCgkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZGliIHA1cHgxMHB4IGMycHggaGVhZFZyIG1yN3B4IG1iN3B4ICI+PGEgY2xhc3M9ImRpZiIgaHJlZj0iam9icy1pbi1jbGllbnQtc2VydmVyLWZpZC5odG0iIHRpdGxlPSJJVCBTb2Z0d2FyZSAtIENsaWVudCBTZXJ2ZXIgSm9icyI+SVQgU29mdHdhcmUgLSBDbGllbnQgU2VydmVyPC9hPiA8YiBjbGFzcz0iYWxwaGE1MCBibiBzbWFsbCI+KDUpPC9iPjwvc3Bhbj4NCgkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZGliIHA1cHgxMHB4IGMycHggaGVhZFZyIG1yN3B4IG1iN3B4ICI+PGEgY2xhc3M9ImRpZiIgaHJlZj0iam9icy1pbi1tZWRpY2FsLWhlYWx0aC1jYXJlLWhvc3BpdGFscy1maWQuaHRtIiB0aXRsZT0iTWVkaWNhbCAvIEhlYWx0aCBDYXJlIC8gSG9zcGl0YWxzIEpvYnMiPk1lZGljYWwgLyBIZWFsdGggQ2FyZSAvIEhvc3BpdGFsczwvYT4gPGIgY2xhc3M9ImFscGhhNTAgYm4gc21hbGwiPigyKTwvYj48L3NwYW4+DQoJCQkJCQkJCQkNCgkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQkNCgkJCQk8L2Rpdj4NCgkJCQk8IS0tTUlERExFIFJPVzEgQ09MLTEgRU5EUy0tPg0KCQkJCQ0KCQkJCTwhLS1NSURETEUgUk9XMSBFTkRTLS0+IA0KCQkJCTwvZGl2Pg0KCQkJCTxicj48YnI+DQoJCQkJPC9kaXY+DQoJCQkJPC9zZWN0aW9uPg0KCQkJCTxzY3JpcHQ+DQoJCQkJCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKXsNCgkJCQkJCWpRdWVyeShkb2N1bWVudCkub24oImNsaWNrIiwgIi5zaG93YWxsc3BhbiIsIGZ1bmN0aW9uKCl7DQoJCQkJCQkJaWYoalF1ZXJ5KHRoaXMpLmF0dHIoImRhdGEtdGFyZ2V0IikgPT09ICdzaG93Jyl7DQoJCQkJCQkJCWpRdWVyeSh0aGlzKS50ZXh0KCJWaWV3IExlc3MiKTsNCgkJCQkJCQkJalF1ZXJ5KHRoaXMpLmF0dHIoImRhdGEtdGFyZ2V0IiwgImhpZGUiKTsNCgkJCQkJCQkJalF1ZXJ5KHRoaXMpLmNsb3Nlc3QoImRpdiIpLmZpbmQoIi5zcGFubGlzdCIpLnJlbW92ZUNsYXNzKCJkbiIpOw0KCQkJCQkJCX1lbHNlew0KCQkJCQkJCQlqUXVlcnkodGhpcykudGV4dCgiVmlldyBNb3JlIik7DQoJCQkJCQkJCWpRdWVyeSh0aGlzKS5hdHRyKCJkYXRhLXRhcmdldCIsICJzaG93Iik7DQoJCQkJCQkJCWpRdWVyeSh0aGlzKS5jbG9zZXN0KCJkaXYiKS5maW5kKCIuc3Bhbmxpc3QiKS5hZGRDbGFzcygiZG4iKTsNCgkJCQkJCQl9DQoJCQkJCQl9KTsNCgkJCQkJfSk7DQoJCQkJPC9zY3JpcHQ+DQoJCQkJCTxzY3JpcHQ+DQoJJC5hamF4KHsNCgkgIHVybDogImh0dHBzOi8vd3d3LnBsYWNlbWVudGluZGlhLmNvbS9qb2JfcG9zdGluZ192aWV3LnBocCIsDQoJICB0eXBlOiAiUE9TVCIsDQoJICBkYXRhVHlwZTogJ2h0bWwnLA0KCSAgZGF0YToge2pvYl92aWV3X2lkOiAnVldoNFZ5czRNalpFTW0xcFExUmpaV3RoTDI5Slp6MDknLGRhdGFfdHlwZTogJ1JFeHpSbXcxY21Sc2RsaDZZa0psVlVaQk5uQTRVVDA5J30sDQoJICBjYWNoZSA6IGZhbHNlLA0KCSAgYXN5bmM6IHRydWUNCgkgIA0KCX0pLmRvbmUoZnVuY3Rpb24ocmVzcCkgew0KCSAgLy9hbGVydChyZXNwKQ0KCX0pOw0KCTwvc2NyaXB0Pg0KCSI7aToxO3M6ODQ6IlN5c3RlbSBhZG1pbmlzdHJhdG9yIChMZXZlbCAzKSBKb2JzIGluIFB1bmUgLSBWYWNhbmN5IGluIElUIFNvZnR3YXJlIC0gQ2xpZW50IFNlcnZlciI7aToyO3M6MjEyOiJTeXN0ZW0gYWRtaW5pc3RyYXRvciAoTGV2ZWwgMykgSm9icyxTeXN0ZW0gYWRtaW5pc3RyYXRvciAoTGV2ZWwgMykgSm9icyBpbiBQdW5lLFN5c3RlbSBhZG1pbmlzdHJhdG9yIChMZXZlbCAzKSBWYWNhbmN5IGluIFB1bmUsU3lzdGVtIGFkbWluaXN0cmF0b3IgKExldmVsIDMpIGpvYnMgaW4gSW5kaWEsSVQgU29mdHdhcmUgLSBDbGllbnQgU2VydmVyIGpvYnMgaW4gUHVuZSI7aTozO3M6Mjc1OiJBcHBseSBmb3IgU3lzdGVtIGFkbWluaXN0cmF0b3IgKExldmVsIDMpIEpvYnMgaW4gUHVuZSBJbmRpYSAtIFN5c3RlbSBhZG1pbmlzdHJhdG9yIChMZXZlbCAzKSBWYWNhbmN5ICBpbiBJVCBTb2Z0d2FyZSAtIENsaWVudCBTZXJ2ZXIgZmllbGQgd2l0aCAzIHRvIDQgeWVhcnMgV29yayBFeHBlcmllbmNlLCBLZXkgU2tpbGxzIGFyZSBTeXN0ZW0gYWRtaW5pc3RyYXRvcixuZXR3b3JrIGVuZ2luZWVyLCBJVCBTb2Z0d2FyZSAtIENsaWVudCBTZXJ2ZXIgam9icyBpbiBQdW5lICBJbmRpYSI7aTo0O3M6NTcyMDoiDQoJCTxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+DQoJCXsNCgkJICAiQGNvbnRleHQiOiAiaHR0cDovL3NjaGVtYS5vcmciLA0KCQkgICJAdHlwZSI6ICJKb2JQb3N0aW5nIiwNCgkJICAidGl0bGUiOiAiU3lzdGVtIGFkbWluaXN0cmF0b3IgKExldmVsIDMpIiwNCgkJICAiYmFzZVNhbGFyeSI6ICIgMyAgTGFjICA1MCBUaG91c2FuZCAgVG8gIDQgIExhYyAgNTAgVGhvdXNhbmQgIiwNCgkJICAiZGVzY3JpcHRpb24iOiAiU3lzdGVtIGFkbWluaXN0cmF0b3IgKExldmVsIDMpIFJlcG9ydGluZyBUbzoJUHJvamVjdCBNYW5hZ2VyIFdvcmtpbmcgSG91cnM6IDk6MzAgSHJzIFNoaWZ0czoJUm90YXRpb25hbCBXZWVrbHkgT2ZmczoJUm90YXRpb25hbCBCYXNpYyBTa2lsbHMgU2V0cyBSZXF1aXJlbWVudDogUXVhbGlmaWNhdGlvbjoJR3JhZHVhdGUvUG9zdCBHcmFkdWF0ZSAvRGlwbG9tYSBpbiBhbnkgc3RyZWFtIGFkIEdsb2JhbCBjZXJ0aWZpY2F0aW9uIGluIHdpbmRvd3MgT3RoZXIgQ2VydGlmaWNhdGlvbjoJTUNTRSAyMDA4IGFuZCBvdGhlciBNaWNyb3NvZnQgc3lzdGVtIGFkbWluaXN0cmF0b3IgcmVsYXRlZCBjZXJ0aWZpY2F0aW9ucyhNQ1NFOiBTZXJ2ZXIgSW5mcmFzdHJ1Y3R1cmUpIEV4cGVyaWVuY2U6CTUgeWVhcnMsIDMtNCB5ZWFycyBpbiByZWxldmFudCBpbmR1c3RyeSAoUklNKSBLZXkgQ29tcGV0ZW5jaWVzICYgU2tpbGxzOiBFeHRlbnNpdmUgZXhwZXJpZW5jZSB3aXRoIGEgdmFyaWV0eSBvZiBzZXJ2ZXItc2lkZSB0ZWNobm9sb2dpZXMgSW4tZGVwdGgga25vd2xlZGdlIGFuZCB3b3JraW5nIGV4cGVyaWVuY2Ugd2l0aCBXaW5kb3dzIFNlcnZlciAyMDA4LDIwMDMsU0JTIEluLWRlcHRoIGtub3dsZWRnZSBhbmQgd29ya2luZyBleHBlcmllbmNlIHdpdGggQWN0aXZlIERpcmVjdG9yeSwgRE5TLERIQ1AsIEFkdmFuY2VkIFdpbmRvd3MgU2VydmVyIFNlcnZpY2VzLCBBZG1pbmlzdHJhdGlvbiBhbmQgQ29uZmlndXJhdGlvbiwgSW5zdGFsbGluZyBhbmQgQ29uZmlndXJpbmcgV2luZG93cyBTZXJ2ZXJzLiBEZXNpZ25pbmcgYW5kIEltcGxlbWVudGluZyBhIFNlcnZlciBJbmZyYXN0cnVjdHVyZSwgSW4tZGVwdGgga25vd2xlZGdlIGFuZCB3b3JraW5nIGV4cGVyaWVuY2Ugd2l0aCBMYXRlc3QgRXhjaGFuZ2UvU1FMIHNlcnZlciBhbmQgVk13YXJlIG9yIENpdHJpeCBXb3JraW5nIGV4cGVyaWVuY2Ugb24gTU9NLCBTQ0NNLCBTQ09NLiBXb3JraW5nIGV4cGVyaWVuY2Ugb24gU2hhcmUgcG9pbnQsIExZTkMsIFdzdXMuIEFkbWluaXN0ZXJpbmcgTWljcm9zb2Z0IEV4Y2hhbmdlIHNlcnZlciwgU0JTIHNlcnZlciwgTHluYyBvciBCbGFja2JlcnJ5IHNlcnZlci4gU2VydmVyIGhhcmRlbmluZywgc3lzdGVtIG1vbml0b3JpbmcsIHBlcmZvcm1hbmNlIHR1bmluZyBhbmQgcHJvY2VzcyBtYXBwaW5nLiBJbXBsZW1lbnRhdGlvbiBvZiBzZWN1cml0eSBiZXN0IHByYWN0aWNlcyBmb3Igb3BlcmF0aW5nIHN5c3RlbXMuIEV2ZW50IGxvZyBtb25pdG9yaW5nICYgdHJvdWJsZXNob290aW5nIFdvcmtpbmcgZXhwZXJpZW5jZSBhbmQgdHJvdWJsZXNob290aW5nIHNraWxscyBvbiBQYXRjaCBtYW5hZ2VtZW50LCBzZXJ2aWNlcyBwYWNrIGRlcGxveW1lbnQsIFBhdGNoIHRlc3RpbmcgYW5kIGFuYWx5c2lzLiBXb3JraW5nIGV4cGVyaWVuY2Ugb2YgQW50aXZpcnVzIG1hbmFnZW1lbnQsIFN5c3RlbSBwYXRjaGVzLCBzZWN1cml0eSBmaXhlcyBldGMuIERlc2lnbmluZyBhbmQgSW1wbGVtZW50aW5nIGFuZCB0cm91Ymxlc2hvb3Rpbmcgc2tpbGxzIGluIHRoZSBiYWNrdXAgcHJvY2VzcywgZGlzYXN0ZXIgcmVjb3ZlcnkuIEFkbWluaXN0ZXJpbmcsIHBsYW5uaW5nIGFuZCBkZXNpZ25pbmcgb2YgRW50ZXJwcmlzZSBncmFkZSBzdG9yYWdlIHN1Y2ggYXMgc2VtYW50aWMsIEVNQywgZXRjLiBIYW5kcyBvbiBleHBlcmllbmNlIG9uIFJhaWQsIE5BUy9JU0NTSS8gU0FOIGRhdGEgc3RvcmFnZSBkZXZpY2VzLiBTaG91bGQgaGF2ZSB0aGUgZXhwb3N1cmUgZm9yIHJlbW90ZSB0ZWNobmljYWwgc3VwcG9ydCBTaG91bGQgYmUgYWJsZSB0byBtYW5hZ2UgYSB0ZWFtIG9mIDEwKyBwZW9wbGUgTmV0d29ya2luZyBrbm93bGVkZ2UgaXMgYSBwbHVzIEJlaGF2aW9yYWwgU2tpbGxzIFNob3VsZCBoYXZlIFBsYW5uaW5nIGFuZCBPcmdhbml6YXRpb24gc2tpbGxzLiBTdHJvbmcgd3JpdHRlbiBhbmQgb3JhbCBjb21tdW5pY2F0aW9uIHNraWxscy4gKEFiaWxpdHkgdG8gY29tbXVuaWNhdGUgZWZmZWN0aXZlbHkgd2l0aCB0aGUgVGVhbSBhcyB3ZWxsIGFzIHRoZSBjdXN0b21lcikgTGVhZGVyc2hpcCBTa2lsbHMuIChMZWFkaW5nIGJ5IGV4YW1wbGUpIEVmZmljaWVudCB0aW1lIG1hbmFnZW1lbnQgc2tpbGxzLiBHb29kIGFuYWx5dGljYWwgU2tpbGxzIFN0cm9uZyBpbnRlcnBlcnNvbmFsIHNraWxscy4gQWJpbGl0eSB0byB3b3JrIHdpdGggSW50ZXJuYXRpb25hbCBDdXN0b21lcnMgYW5kIGNyZWF0ZSBhIHJhcHBvcnQgd2l0aCB0aGVtLiBSb2xlcyAmIFJlc3BvbnNpYmlsaXR5OiBQcmltYXJ5IFVuZGVyc3RhbmQgdGhlIGRvbWFpbiwgdGhlIGJ1c2luZXNzIHJlcXVpcmVtZW50cyBhbmQgdGhlIHRlY2huaWNhbCBjaGFsbGVuZ2VzIFNlcnZlIGFzIHRoZSB0ZWFt4oCZcyByZXByZXNlbnRhdGl2ZSBvbiB0aGUgbGVhZGVyc2hpcCBncm91cHMgcmVxdWlyaW5nIFRlYW0gTGVhZGVyIHBhcnRpY2lwYXRpb24uIEFjdCBhcyBwcmltYXJ5IGNvbnRhY3QgcGVyc29uIGZvciB0aGUgdGVhbS4gUHJvdmlkZXMgdGVjaG5pY2FsIHN1cHBvcnQsIEFzc2lzdCBqdW5pb3IgYWRtaW4gdG8gcmVzb2x2ZSB0ZWNobmljYWwgcXVlcmllcyBEZXRlcm1pbmUgYW5kIHByb3ZpZGUgYSBuZWNlc3NhcnkgbGV2ZWwgb2YgdGVjaG5pY2FsIGRvY3VtZW50YXRpb24gZHVyaW5nIHJlcXVpcmVtZW50cyBnYXRoZXJpbmcsIGJhc2VkIG9uIHRlY2huaWNhbCBzZXJ2aWNlcyBDb29yZGluYXRlIGFuZCBzdWJtaXQgdGVhbSByZXBvcnRzLCBzdWNoIGFzIHdlZWtseSByZXBvcnRzIGFuZCB0ZWFtIHBsYW4sIGFuZCBvdGhlciBuZWNlc3NhcnkgZG9jdW1lbnRhdGlvbiByZXF1aXJlZCBmcm9tIHRoZSB0ZWFtLiBDb21tdW5pY2F0ZSBkYWlseSByZWdhcmRpbmcgcHJvamVjdCBzdGF0dXMgd2l0aCBhcHByb3ByaWF0ZSB0ZWFtIG1lbWJlcnMgUHJvYmxlbSBzb2x2aW5nIGFiaWxpdHksIHdpdGggYSBrbmFjayBmb3IgdGVjaG5pY2FsIGlubm92YXRpb24gUGVyZm9ybSBhY3Rpdml0aWVzIHN1Y2ggYXMgc2VydmVyIGJ1aWxkcyAoYXBwbGljYXRpb24gYW5kL29yIGNvbmZpZ3VyYXRpb24pLCBEZWZyYWdnaW5nIEV4Y2hhbmdlIERhdGEgU3RvcmVzLCBBY3RpdmUgRGlyZWN0b3J5IFVwZGF0ZSBhbmQvb3IgTWlncmF0aW9uLCBTUUwgU2VydmVyIFR1bmluZywgU2hhcmUgcG9pbnQgQXBwbGljYXRpb24gYnVpbGRpbmcsIGV0Yy4gcmVtb3RlbHkgdmlhIHJlbW90ZSBjb250cm9sIHNvZnR3YXJlLiBBdXRob3Igc2NyaXB0cyAoaW4gdGhlIHNvZnR3YXJlKSB0byBhdXRvbWF0ZSBjZXJ0YWluIHN5c3RlbSBhbmQgYXBwbGljYXRpb24gZnVuY3Rpb25zLiBDcmVhdGUgY3VzdG9tIG1vbml0b3Igc2V0cyAoaW4gdGhlIHNvZnR3YXJlKSB0byBwZXJmb3JtIHNlcnZlciAvIHNlcnZpY2UgLyBhcHBsaWNhdGlvbiBtb25pdG9yaW5nLiBEZXNpZ24gQmFja3VwLEFudGl2aXJ1cyBhbmQgcGF0Y2ggbWFuYWdlbWVudCBwb2xpY3kgTW9uaXRvciBNYWludGVuYW5jZSByZWxhdGVkIGFjdGl2aXRpZXMgYW5kIGRlbGl2ZXJhYmxlcy4gUmVzZWFyY2ggYW5kIGFuYWx5c2lzIG9uIHRvcGljcyBzdWNoIGFzIHNlY3VyaXR5IHRocmVhdHMsIHBhdGNoIGFzc2Vzc21lbnQsIHNlcnZpY2UgcGFjayBhc3Nlc3NtZW50LCBhcHBsaWNhdGlvbiB1cGdyYWRlIGFzc2Vzc21lbnQsIGV0Yy4gVG8gY29tbXVuaWNhdGUgYmFjayB0byB0aGUgTVNQ4oCZcywgc29mdHdhcmUgYW5kIEhlbHAgRGVzayBvcmdhbml6YXRpb25zIGFib3V0IHRoZSBmaW5kaW5ncy4gRG9jdW1lbnRpbmcgY2hhbmdlcywgaW5jaWRlbnRzLCBhbmQgcHJvYmxlbXMgTW9uaXRvciBBY3Rpdml0aWVzIGFuZCBpbmRpdmlkdWFsIHBlcmZvcm1hbmNlIG9mIHRoZSBUZWFtIE1lbWJlcnMgUmVzcG9uc2libGUgZm9yIHRoZSBEZWxpdmVyeSBvZiBRdWFsaXR5IFNlcnZpY2VzIHdpdGhpbiB0aGUgU0xBIGJ5IHRoZSBUZWFtIG1lbWJlcnMgU2Vjb25kYXJ5IFBhcnRpY2lwYXRlIGFzIGEgTGVhZGVyIG9mIHRoZSB0ZWFtIHdpdGggaW5zdHJ1Y3Rpb24sIHJlZmVyZW5jZSwgYW5kIGNvbGxlY3Rpb24gbWFuYWdlbWVudCByZXNwb25zaWJpbGl0aWVzIHRvIFN0aXIgdGhlIGRpc2N1c3Npb24gaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiBhbmQgb2J0YWluIGRlc2lyZWQgcmVzdWx0cy4gRm9zdGVyIHRlYW0gYW5kIGluZGl2aWR1YWwgZ3Jvd3RoIHRocm91Z2ggY29hY2hpbmcsIG1lbnRvcmluZywgYW5kIHNlcnZlIGFzIGEgcmVzb3VyY2UgcGVyc29uLiBFbmNvdXJhZ2luZyBjb2xsYWJvcmF0aW9uIGFtb25nIHRlYW0gbWVtYmVycy4gQ29uZHVjdCBUcmFpbmluZyBmb3IgbmV3IGpvaW5lcnMuIElubm92YXRpb24gYW5kIGNyZWF0aXZpdHkgdG8gcmVzb2x2ZSB0aGUgaXNzdWVzLiBBdXRob3JpdHk6IEF1dGhvcml0eSB0byBhcHByb3ZlIHRoZSBsZWF2ZXMgb2YgdGhlIHRlYW0gTWVtYmVycyBpbiB0aGUgYWJzZW5jZSBvZiBwcm9qZWN0IG1hbmFnZXIuIExvZyBpbiB0byBSTU0gdG9vbCwgdGlja2V0aW5nIHN5c3RlbS8gUFNBIHRvb2wgdG8gd29yayBhcyB3ZWxsIGFzIGRpc3RyaWJ1dGUgdGhlIHRhc2tzIHRvIHRoZSB0ZWFtIG1lbWJlcnMgR2VuZXJhdGUgcHJvamVjdCBSZXBvcnRzIExvZ2luIHRvIEhlbHAgSW5kZXggc3lzdGVtIHRvIHJldmlldyB0aGUgYWN0aXZpdGllcyBvZiB0aGUgVGVhbSBtZW1iZXJzIGFuZCB0YWtlIGFwcHJvcHJpYXRlIGFjdGlvbiBMZWFkIHRlYW0gZGlzY3Vzc2lvbiAmIGRlY2lzaW9uIG1ha2luZyBwcm9jZXNzIENvbmR1Y3QgdGhlIEFwcHJhaXNhbCBhbmQgUmV2aWV3IGRpc2N1c3Npb24gZm9yIFRlYW0gbWVtYmVycyBhbmQgZ2l2ZSBmZWVkYmFjayB0byBtYW5hZ2VtZW50LiBUbyByZWNvbW1lbmQgdGhlIHRyYWluaW5nIGZvciBUZWFtIG1lbWJlcnMgYW5kIGFsc28gdG8gcmVjb21tZW5kIHRoZSBkaXNjaXBsaW5hcnkgYWN0aW9uIGFnYWluc3QgdGhlIHRlYW0gbWVtYmVyLiIsDQoJCSAgImVkdWNhdGlvblJlcXVpcmVtZW50cyI6ICJQcm9mZXNzaW9uYWwgRGVncmVlLCBPdGhlciBCYWNoZWxvciBEZWdyZWUiLA0KCQkgICJleHBlcmllbmNlUmVxdWlyZW1lbnRzIjogIjMgLSA0IFllYXJzIiwNCgkJICAiaW5kdXN0cnkiOiAiSVQgU29mdHdhcmUgLSBDbGllbnQgU2VydmVyIiwNCgkJICAiam9iTG9jYXRpb24iOiB7DQoJCSAgICAiQHR5cGUiOiAiUGxhY2UiLA0KCQkgICAgImFkZHJlc3MiOiB7DQoJCSAgICAgICJAdHlwZSI6ICJQb3N0YWxBZGRyZXNzIiwNCgkJICAgICAgImFkZHJlc3NMb2NhbGl0eSI6ICJNYWhhcmFzaHRyYSIsDQoJCSAgICAgICJhZGRyZXNzUmVnaW9uIjogIlB1bmUiDQoJCSAgICB9DQoJCSAgfSwNCgkJICJxdWFsaWZpY2F0aW9ucyI6ICJQcm9mZXNzaW9uYWwgRGVncmVlLCBPdGhlciBCYWNoZWxvciBEZWdyZWUiLA0KCQkgICAgICJza2lsbHMiOiAiU3lzdGVtIGFkbWluaXN0cmF0b3IsbmV0d29yayBlbmdpbmVlciINCgkJICB9DQoJCTwvc2NyaXB0Pg0KCQkiO2k6NTtOO30=