MS4gSU5UUk9EVVpJT05FCgpXaW5lIOggdW4gcHJvZ3JhbW1hIGNoZSBwZXJtZXR0ZSBkaSBlc2VndWlyZSBwcm9ncmFtbWkgc3ZpbHVwcGF0aSBwZXIgTWljcm9zb2Z0CldpbmRvd3MgKGNvbXByZXNpIGVzZWd1aWJpbGkgRE9TLCBXaW5kb3dzIDMueCBlIFdpbjMyKSBzdSBVbml4LiBFJyBjb3N0aXR1aXRvCmRhIHVuIGNhcmljYXRvcmUgZGkgcHJvZ3JhbW1hIGNoZSBjYXJpY2EgZWQgZXNlZ3VlIGNvZGljZSBiaW5hcmlvIE1pY3Jvc29mdApXaW5kb3dzLCBlZCB1bmEgbGlicmVyaWEgKGNoaWFtYXRhIFdpbmVsaWIpIGNoZSBpbXBsZW1lbnRhIGxlIGNoaWFtYXRlIGFsbGUgQVBJCldpbmRvd3MgdXNhbmRvIGlsIGxvcm8gZXF1aXZhbGVudGUgVW5peCBlIFgxMS4gTGEgbGlicmVyaWEgcHXyIGVzc2VyZSB1c2F0YQphbmNoZSBwZXIgcG9ydGFyZSBjb2RpY2UgV2luMzIgaW4gZXNlZ3VpYmlsaSBVbml4IG5hdGl2aS4KV2luZSDoIHVuIGZyZWUgc29mdHdhcmUsIHJpbGFzY2lhdG8gc290dG8gR05VIExHUEw7IGxlZ2dpIGlsIGZpbGUgTElDRU5TRSBwZXIgaQpkZXR0YWdsaS4KCjIuIFFVSUNLIFNUQVJUCgpPZ25pIHZvbHRhIGNoZSBzaSBjb21waWxhIGRhbCBzb3JnZW50ZSwg6CByYWNjb21hbmRhYmlsZSB1c2FyZSBpbCBXaW5lIGluc3RhbGxlcgpwZXIgY29tcGlsYXJlIGUgaW5zdGFsbGFyZSBXaW5lLiBEYWxsYSBkaXJlY3RvcnkgZGkgbGl2ZWxsbyBwafkgYWx0byBkZWwKc29yZ2VudGUgV2luZSAoY2hlIGNvbnRpZW5lIHF1ZXN0byBmaWxlKSwgZXNlZ3VpOgoKLi90b29scy93aW5laW5zdGFsbAoKRXNlZ3VpIGkgcHJvZ3JhbW1pIGNvbiAid2luZSBbb3B6aW9uaV0gcHJvZ3JhbW1hIi4gUGVyIGFsdHJlIGluZm9ybWF6aW9uaSBlCnJpc29sdXppb25lIGRpIHByb2JsZW1pLCBsZWdnaSBpbCByZXN0byBkaSBxdWVzdG8gZmlsZSwgbGEgcGFnaW5hIFdpbmUgbWFuLCBpCmZpbGUgbmVsbGEgZGlyZWN0b3J5IGRvY3VtZW50YXppb25lIGRlbCBzb3JnZW50ZSBXaW5lIChsZWdnaSAiRE9DVU1FTlRBVElPTiIpLAplZCBpbiBtb2RvIHBhcnRpY29sYXJlIGxhIG5vdGV2b2xlIHF1YW50aXTgIGRpIGluZm9ybWF6aW9uaSBjaGUgcHVvaSB0cm92YXJlIGEKaHR0cDovL3d3dy53aW5laHEuY29tLgoKMy4gUklDSElFU1RFIERJIFNJU1RFTUEKClBlciBjb21waWxhcmUgZWQgZXNlZ3VpcmUgV2luZSwgZGV2aSBhdmVyZSB1bm8gZGVpIHNlZ3VlbnRpOgoKCUxpbnV4IHZlcnNpb25lIDIuMC4zNiBvIHN1cGVyaW9yZQoJRnJlZUJTRCA0LnggbyBGcmVlQlNEIDUtQ09SUkVOVEUgbyBzdXBlcmlvcmUKCVNvbGFyaXMgeDg2IDIuNSBvIHN1cGVyaW9yZQoJTmV0QlNELUNPUlJFTlRFCgpwb2ljaOkgV2luZSByaWNoaWVkZSBpbCBzdXBwb3J0byBhbCBLZXJuZWwtbGV2ZWwgdGhyZWFkIHBlciBlc3NlcmUgZXNlZ3VpdG8sCnNvbG8gaSBzaXN0ZW1pIG9wZXJhdGl2aSBzb3ByYSBtZW56aW9uYXRpIHNvbm8gc3VwcG9ydGF0aS4KQWx0cmkgc2lzdGVtaSBvcGVyYXRpdmkgY2hlIHN1cHBvcnRhbm8gaSBrZXJuZWwgdGhyZWFkcyBwb3RyYW5ubyBlc3NlcmUKc3VwcG9ydGF0aSBpbiBmdXR1cm8uCgpJbmZvcm1hemlvbmkgTGludXg6CgpNZW50cmUgTGludXggMi4yLnggZG92cmViYmUgZnVuemlvbmFyZSwgTGludXggMi4wLnggcG90cmViYmUgZnVuemlvbmFyZQoodmVyc2lvbmkgcGn5IHZlY2NoaWUgZGVsbGEgMi4wLnggYXZldmFubyBjcmFzaCBjb2xsZWdhdGkgYWkgdGhyZWFkKSwg6Apjb25zaWdsaWFiaWxlIHF1aW5kaSBhdmVyZSB1bmEgdmVyc2lvbmUgY29ycmVudGUgZGVsIEtlcm5lbCBjb21lIGxhIDIuNC54LgoKSW5mb3JtYXppb25pIEZyZWVCU0Q6CgpBc3NpY3VyYXRpIGNoZSBsZSBvcHppb25pIFVTRVJfTERULCBTWVNWU0hNLCBTWVNWU0VNLCBlIFNZU1ZNU0cgc2lhbm8gYXR0aXZlIG5lbAp0dW8gS2VybmVsLiBBbHRyZSBpbmZvcm1hemlvbmkgc2kgdHJvdmFubyBuZWwgcG9ydHMgdHJlZToKZnRwOi8vZnRwLmZyZWVic2Qub3JnL3B1Yi9GcmVlQlNEL3BvcnRzL3BvcnRzL2VtdWxhdG9ycy93aW5lLwoKSW5mb3JtYXppb25pIFNvbGFyaXM6CgpTYXLgIG5lY2Vzc2FyaW8gY29tcGlsYXJlIFdpbmUgY29uIGwnaW5zaWVtZSBkaSB0b29sIEdOVSAoZ2NjLCBnYXMsIGV0Yy4pLgpBdHRlbnppb25lIDogaW5zdGFsbGFyZSBnYXMgKm5vbiogc2lnbmlmaWNhIGNoZSBxdWVzdG8gc2Fy4CB1c2F0byBkYSBnY2MuCkUnIG5lY2Vzc2FyaW8gcmljb21waWxhcmUgZ2NjIGRvcG8gYXZlciBpbnN0YWxsYXRvIGdhcyBvIHN5bWJsaW5raW5nIGNjLCBjb3PsCmNvbWUgbG8g6CBwZXIgbGQgZGVsbGUgZ251IHRvb2xzLgoKSW5mb3JtYXppb25pIE5ldEJTRDoKCkFzc2ljdXJhdGkgY2hlIGxlIG9wemlvbmkgVVNFUl9MRFQsIFNZU1ZTSE0sIFNZU1ZTRU0sIGUgU1lTVk1TRyBzaWFubyBhdHRpdmUgbmVsCnR1byBLZXJuZWwuCgpGaWxlIFN5c3RlbSBzdXBwb3J0YXRpOgpXaW5lIGRvdnJlYmJlIHBvdGVyIGVzc2VyZSBlc2VndWl0byBzdWxsYSBtYWdnaW9yYW56YSBkZWkgZmlsZSBzeXN0ZW0uIFR1dHRhdmlhLApXaW5lIHBvdHJlYmJlIG5vbiBwYXJ0aXJlIHNlIHVtc2RvcyDoIHVzYXRvIHBlciBsYSBkaXJlY3RvcnkgL3RtcC4gQWxjdW5pCnByb2JsZW1pIGRpIGNvbXBhdGliaWxpdOAgc29ubyBzdGF0aSByaXBvcnRhdGkgdXNhbmRvIGwnYWNjZXNzbyBhaSBmaWxlCmF0dHJhdmVyc28gU2FtYmEuIElub2x0cmUsIHBvaWNo6SBOVEZTIHB18iBlc3NlcmUgdXNhdG8gaW4gbWFuaWVyYSBzaWN1cmEgc29sbwpjb24gYWNjZXNzbyBkaSBzb2xhIGxldHR1cmEgcGVyIG9yYSwgc2NvbnNpZ2xpYW1vIGwndXRpbGl6em8gZGVsIE5URlMsIHBvaWNo6SBpCnByb2dyYW1taSBXaW5kb3dzIGhhbm5vIGJpc29nbm8gZGkgYXZlcmUgYWNjZXNzbyBpbiBzY3JpdHR1cmEgb3Z1bnF1ZS4KTmVsIGNhc28gIGRpIGZpbGUgTlRGUywgcXVlc3RpIHZhbm5vIGNvcGlhdGkgaW4gdW5hIGxvY2F6aW9uZSBuZWxsYSBxdWFsZSBzaSBoYQphY2Nlc3NvIGluIHNjcml0dHVyYS4KClJlcXVpc2l0aSBiYXNlOgoKRGV2ZSBlc3NlcmUgaW5zdGFsbGF0byBhbmNoZSBsJ1gxMSBkZXZlbG9wbWVudCBpbmNsdXNpIGkgZmlsZSAoY2hpYW1hdG8KeGxpYjZnLWRldiBpbiBEZWJpYW4gZSBYZnJlZTg2LWRldmVsIGluIFJlZEhhdCkuCgpUb29sIGRpIGNvbXBpbGF6aW9uZSBuZWNlc3Nhcmk6CgpTdSBzaXN0ZW1pIHg4NiDoIHJpY2hpZXN0YSB1bmEgdmVyc2lvbmUgZ2NjID49IGEgMi43LjIuClZlcnNpb25pIHBp+SB2ZWNjaGllIHBvdHJlYmJlcm8gYXZlcmUgZGVpIHByb2JsZW1pIHF1YW5kbyBhbGN1bmkgZmlsZSB2ZW5nb25vCmNvbXBpbGF0aSBjb24gbCdvdHRpbWl6emF6aW9uZSwgYSBjYXVzYSBkaSBwcm9ibGVtaSBjb24gbGEgZ2VzdGlvbmUgZGVnbGkgaGVhZGVyCmRlaSBmaWxlLiBQZ2NjIGFsIG1vbWVudG8gbm9uIGZ1bnppb25hIGNvbiBXaW5lLiBMYSBjYXVzYSBkaSBxdWVzdG8gcHJvYmxlbWEK6CBzY29ub3NjaXV0YS4KCkNoaWFyYW1lbnRlIOggbmVjZXNzYXJpbyBhbmNoZSAibWFrZSIgKHBp+SBwcmVjaXNhbWVudGUgR05VIG1ha2UpLgoKRScgbmVjZXNzYXJpbyBhbmNoZSBmbGV4IHZlcnNpb25lIDIuNSBvIHN1Y2Nlc3NpdmEgZSB5YWNjLgpCaXNvbiBwdfIgZXNzZXJlIHV0aWxpenphdG8gYWwgcG9zdG8gZGkgeWFjYy4gU2Ugc3RhaSB1c2FuZG8gdW5hIFJlZEhhdCBvCkRlYmlhbiwgaW5zdGFsbGEgaSBwYWNjaGV0dGkgRmxleCBlIEJpc29uLgoKTGlicmVyaWUgcGVyIHN1cHBvcnRpIG9wemlvbmFsaToKClNlIHZ1b2kgaWwgc3VwcG9ydG8gYWxsYSBzdGFtcGEgQ1VQUywgaW5zdGFsbGEgaSBwYWNjaGV0dGkgc2lhIGN1cHMgY2hlCmN1cHMtZGV2ZWwuCgpQZXIgbCdlc2VjdXppb25lIGF1dG9tYXRpY2EgZGVsbGEgc3VpdGUgZGkgc2NyaXB0IHRlc3QsIGF2cmFpIGJpc29nbm8gZGVsCnN1cHBvcnRvIGRlbGxhIExpYnBlcmwgZGV2ZWxvcG1lbnQgaGVhZGVyIChwYWNjaGV0dG8gbGlicGVybC1kZXYgc3UgRGViaWFuKS4KCk5lbCBjYXNvIGluIGN1aSB2b2xlc3NpIGNvbXBpbGFyZSBsYSBkb2N1bWVudGF6aW9uZSBkYSBzb2xvLCBsZWdnaSBsYSBzZXppb25lCiJET0NVTUVOVEFaSU9ORSIuCgo0LiBDT01QSUxBWklPTkUKCk5lbCBjYXNvIGluIGN1aSBzaSBzY2VnbGllc3NlIGRpIG5vbiB1dGlsaXp6YXJlIFdpbmVpbnN0YWxsLCBlc2VndWkgaSBzZWd1ZW50aQpjb21hbmRpIHBlciBjb21waWxhcmUgV2luZToKCi4vY29uZmlndXJlCm1ha2UgZGVwZW5kCm1ha2UKClF1ZXN0byBjb21waWxlcuAgaWwgcHJvZ3JhbW1hICJ3aW5lIiBlIG51bWVyb3NlIGxpYnJlcmllIGUgYmluYXJpIGRpIHN1cHBvcnRvLgpJbCBwcm9ncm1tYSAid2luZSIgY2FyaWNhIGVkIGVzZWd1ZSBnbGkgZXNlZ3VpYmlsaSBXaW5kb3dzLgpMYSBsaWJyZXJpYSAibGlid2luZSIgKCJXaW5lbGliIikgcHXyIGVzc2VyZSB1c2F0YSBwZXIgY29tcGlsYXJlIGUgbGlua2FyZSBpbApjb2RpY2Ugc29yZ2VudGUgV2luZG93cyBzb3R0byBVbml4LgoKUGVyIHZlZGVyZSBsZSBvcHppb25pIGRlbGxhIGNvbmZpZ3VyYXppb25lIGRlbGxhIGNvbXBpbGF6aW9uZSwgZXNlZ3VpCi4vY29uZmlndXJlIC1oZWxwLgoKUGVyIGZhcmUgbCd1cGdyYWRlIGFkIHVuYSBudW92YSB2ZXJzaW9uZSB1dGlsaXp6YW5kbyB1bmEgcGF0Y2gsIHByaW1hIGNkIGZpbm8KYWxsYSBkaXJlY3RvcnkgZGkgbGl2ZWxsbyBzdXBlcmlvcmUgZGVsbGEgcmVsZWFzZSAocXVlbGxhIGNoZSBjb250aWVuZSBxdWVzdG8KZmlsZSBSRUFETUUpLiBRdWluZGkgZXNlZ3VpICJtYWtlIGNsZWFuIiwgZWQgYXBwbGljYSBsYSBwYXRjaCBhbGxhIHJlbGVhc2UgY29uOgoKCUd1bnppcCAtYyBwYXRjaC1maWxlIHwgcGF0Y2ggLXAxCgpkb3ZlICJwYXRjaC1maWxlIiDoIGlsIG5vbWUgZGVsbGEgcGF0Y2ggKHF1YWxjb3NhIGNvbWUgV2luZS1hYW1tZ2cuZGlmZi5neikuClB1b2kgcXVpbmRpIHJpZXNlZ3VpcmUgIi4vY29uZmlndXJlIiwgZSBxdWluZGkgZXNlZ3VpcmUgIm1ha2UgZGVwZW5kICYmIG1ha2UiLgoKNS4gU0VUVVAKClVuYSB2b2x0YSBjaGUgV2luZSDoIHN0YXRvIGNvbXBpbGF0byBjb3JyZXR0YW1lbnRlLCBwdW9pIGVzZWd1aXJlCiJtYWtlIGluc3RhbGwiOyBxdWVzdG8gaW5zdGFsbGVy4CBnbGkgZXNlZ3VpYmlsaSB3aW5lLCBsYSBwYWdpbmEgV2luZSBtYW4sIGUKYWx0cmkgcG9jaGkgZmlsZSBuZWNlc3NhcmkuCgpOb24gc2NvcmRhcnRpIGRpIGRpc2luc3RhbGxhcmUgcXVhbHNpYXNpIHByZWNlZGVudGUgaW5zdGFsbGF6aW9uZSBkaSBXaW5lIGluCmNvbmZsaXR0by4gUHJvdmEgc2lhICJkcGtnIC1yIHdpbmUiIG8gInJwbSAtZSB3aW5lIiBvICJtYWtlIHVuaW5zdGFsbCIgcHJpbWEgZGkKaW5zdGFsbGFyZS4KClNlIHZ1b2kgbGVnZ2VyZSBsYSBkb2N1bWVudGF6aW9uZSBmb3JuaXRhIGNvbiBpbCBzb3JnZW50ZSBXaW5lLCBjb250cm9sbGEgbGEKc2V6aW9uZSAiRE9DVU1FTlRBWklPTkUiLgoKV2luZSBoYSBiaXNvZ25vIGRpIHVuIGZpbGUgZGkgY29uZmlndXJhemlvbmUgY2hpYW1hdG8gImNvbmZpZyIgbmVsbGEgdHVhCmRpcmVjdG9yeSB+Ly53aW5lLiBJbCBmb3JtYXRvIGRpIHF1ZXN0byBmaWxlIOggc3BpZWdhdG8gbmVsbGEgcGFnaW5hIGNvbmZpZyBmaWxlCm1hbiAoZG9jdW1lbnRhdGlvbi93aW5lLmNvbmYubWFuKS4KSWwgZmlsZSBkb2N1bWVudGF0aW9uL3NhbXBsZXMvY29uZmlnIGNvbnRpZW5lIHVuIGVzZW1waW8gZGkgZmlsZSBkaQpjb25maWd1cmF6aW9uZSBjaGUgZGV2ZSBlc3NlcmUgYWRhdHRhdG8gZSBjb3BpYXRvIG5lbGxhIGxvY2F6aW9uZSBtZW56aW9uYXRhIGluCnByZWNlZGVuemEuCgpOb24gc2NvcmRhcnRpIGRpIGFnZ2l1bmdlcmUgY2hpYXZpIGRpIHJlZ2lzdHJvIHZpdGFsaSBhcHBsaWNhbmRvIHdpbmVkZWZhdWx0LnJlZwpjb24gcHJvZ3JhbXMvcmVnZWRpdC8uIENvbnRyb2xsYSBsYSBkaXJlY3RvcnkgZG9jdW1lbnRhdGlvbi8gcGVyIGkgZGV0dGFnbGkuCgpDb250cm9sbGEgbCdhcmVhIFN1cHBvcnQgYSBodHRwOi8vd3d3LndpbmVocS5jb20vIHBlciBhbHRyaSBzdWdnZXJpbWVudGkgc3VsbGEKY29uZmlndXJhemlvbmUuCgpOZWwgY2FzbyBkaSBlcnJvcmkgZGkgY2FyaWNhbWVudG8gZGVsbGUgbGlicmVyaWUKKGUuZy4gIkVycm9yIHdoaWxlIGxvYWRpbmcgc2hhcmVkIGxpYnJhcmllczogbGlibnRkbGwuc28iKSwgYWNjZXJ0YXRpIGRpCmFnZ2l1bmdlcmUgaWwgcGVyY29yc28gZGVsbGEgZGlyZWN0b3J5IGEgL2V0Yy9sZC5zby5jb25mIGVkIGVzZWd1aSBsZGNvbmZpZyBjb21lCnJvb3QuCgpQZXIgdmVyaWZpY2FyZSBsYSBjb3JyZXR0ZXp6YSBkZWxsJ2FtYmllbnRlIGRpIGN1aSBoYWkgYmlzb2dubyBwZXIgZXNlZ3VpcmUgV2luZQpjb24gc3VjY2Vzc28sIHB1b2kgZXNlZ3VpcmUgIi4vdG9vbHMvd2luZWNoZWNrIHwgbGVzcyIuCk90dGVycmFpIHVuIHB1bnRlZ2dpbyBwZXJjZW50dWFsZSBjaGUgaW5kaWNhIGxhICJDb3JyZXR0ZXp6YSBkZWxsYQpjb25maWd1cmF6aW9uZSBkaSBXaW5lIi4KcG9pY2jpIHF1ZXN0byBwcm9ncmFtbWEg6CB1bmEgYWxwaGEsIGFuY2hlIHNlIG5vbiBlc2VndWUgdW4gdmVybyB0ZXN0IGNvbXBsZXRvCmFuY29yYSwgcHXyIGVzc2VyZSB1dGlsaXp6YXRvIGNvbWUgdW4gcHJpbW8gc3RlcCBkaSB2ZXJpZmljYS4KCkNvbnRyb2xsYSBsYSBwYWdpbmEgd2luZS5jb25mIG1hbiBzdSBjb21lIHBhc3NhcmUgYWxsYSBtb2RhbGl04CBzb2xvIHRlc3R1YWxlCnNlIGxvIGRlc2lkZXJpLgoKNi4gRVNFR1VJUkUgSSBQUk9HUkFNTUkKClF1YW5kbyBzaSBlc2VndWUgV2luZSwgc2kgcHXyIHNwZWNpZmljYXJlIGwnaW50ZXJvIHBlcmNvcnNvIGRlbGwnZXNlZ3VpYmlsZSBvCnNvbG8gaWwgbm9tZSBkZWwgZmlsZS4KClBlciBlc2VtcGlvOiBwZXIgZXNlZ3VpcmUgU29saXRhcmlvOgoKCVdpbmUgc29sCShVdGlsaXp6YW5kbyBpbCBwZXJjb3JzbyBkaSByaWNlcmNhIGNvbWUgc3BlY2lmaWNhdG8KCVdpbmUgc29sLmV4ZSAgICAgIG5lbCBmaWxlIGRpIGNvbmZpZ3VyYXppb25lIHBlciBsb2NhbGl6emFyZSBpbCBmaWxlKQoKCXdpbmUgYzpcXHdpbmRvd3NcXHNvbC5leGUgKHV0aWxpenphbmRvIGxhIHNpbnRhc3NpIERPUykKCXdpbmUgL3Vzci93aW5kb3dzL3NvbC5leGUgKHV0aWxpenphbmRvIGxhIHNpbnRhc3NpIFVuaXgpCgl3aW5lIC0gc29sLmV4ZSAvcGFyYW1ldGVyMSAtcGFyYW1ldGVyMiBwYXJhbWV0ZXIzCgkJCQkgIChjaGlhbWEgaWwgcHJvZ3JhbW1hIGNvbiBkZWkgcGFyYW1ldHJpKQoKTm90YTogaWwgcGVyY29yc28gZGVsIGZpbGUgcHXyIGVzc2VyZSBhZ2dpdW50byBhbCBwZXJjb3JzbyBxdWFuZG8g6CBmb3JuaXRvIHVuCm5vbWUgaW50ZXJvIHN1bGxhIGNvbW1hbmRsaW5lLgoKV2luZSBub24g6CBhbmNvcmEgY29tcGxldG8sIHF1aW5kaSBtb2x0aSBwcm9ncmFtbWkgcG90cmViYmVybyBjcmFzaGFyZS4gU2UKd2luZWRiZyDoIHNldHRhdG8gY29ycmV0dGFtZW50ZSBpbiBhY2NvcmRvIGNvbiBsYSBkb2N1bWVudGF6aW9uZSBjb250ZW51dGEgaW4KZG9jdW1lbnRhdGlvbi9kZWJ1Z2dlci5zZ21sLCBzYXJhaSBtYW5kYXRvIGFsbCdpbnRlcm5vIGRpIHVuIGRlYnVnZ2VyIGNvc+wKcG90cmFpIHN0dWRpYXJlIGUgcmlzb2x2ZXJlIGlsIHByb2JsZW1hLgpQZXIgbWFnZ2lvcmkgaW5mb3JtYXppb25pIHN1IGNvbWUgZmFyZSBjafIsIHBlciBmYXZvcmUgbGVnZ2kgaWwgZmlsZQpkb2N1bWVudGF0aW9uL2RlYnVnZ2luZy5zZ21sLgoKRG92cmVzdGkgZmFyZSB1biBiYWNrdXAgZGkgdHV0dGkgaSB0dW9pIGZpbGUgaW1wb3J0YW50aSBhaSBxdWFsaSBjb25jZWRpCmwnYWNjZXNzbyBkYSBwYXJ0ZSBkaSBXaW5lLCBvcHB1cmUgY3JlYW5lIHVuYSBzcGVjaWFsZSBjb3BpYSBXaW5lLCBwb2ljaOkgc2kKc29ubyB2ZXJpZmljYXRpIGRlaSBjYXNpIGRpIHV0ZW50aSBjaGUgaGFubm8gcmlwb3J0YXRvIGxhIGNvcnJ1emlvbmUgZGkgZmlsZS4KTk9OIGVzZWd1aXJlIEV4cGxvcmVyLCBhZCBlc2VtcGlvLCBzZSBub24gaGFpIHVuIGJhY2t1cCBhcHByb3ByaWF0bywgcGVyY2jpIGEKdm9sdGUgcmlub21pbmEvc3RvcnBpYSBkaXZlcnNlIGRpcmVjdG9yeS4gQW5jaGUgYWx0cmUgYXBwbGljYXppb25pIE1TIG5vbiBzb25vCnNpY3VyZSBjb21lIGFkIGVzZW1waW8gTWVzc2VuZ2VyLCB2aXN0byBjaGUgbGFuY2lhbm8gRXhwbG9yZXIgaW4gdW4gbW9kbyBvCm5lbGwnYWx0cm8uIFF1ZXN0ZSBwYXJ0aWNvbGFyaSBjb3JydXppb25pICghJCEkISQhJC5wZnIpIHBvc3Nvbm8gZXNzZXJlCnBhcnppYWxtZW50ZSBjb3JyZXR0ZSB1dGlsaXp6YW5kbwpodHRwOi8vaG9tZS5uZXhnby5kZS9hbmRpLm1vaHIvZG93bmxvYWQvZGVjb3JydXB0X2V4cGxvcmVyCgo3LiBET0NVTUVOVEFaSU9ORQoKUHVvaSB0cm92YXJlIGRlbGxhIGRvY3VtZW50YXppb25lIChkaXZlcnNlIGd1aWRlIHBlciBXaW5lIGV0Yy4pIG5lbGxhIGRpcmVjdG9yeQpkb2N1bWVudGF0aW9uLyAoYSBwYXJ0ZSBxdWVsbGUgZGlzcG9uaWJpbGkgc3UgV2luZWhxKS4KClNlIHZ1b2kgcHJvY2Vzc2FyZSBpIGZpbGUgU0dNTCwgcHVvaSBlc2VndWlyZSAibWFrZSBkb2MiIG5lbGxhIGRpcmVjdG9yeQpkb2N1bWVudGF0aW9uLy4KUGVyIGZhcmUgY2nyIOggcmljaGllc3RvIGlsIHBhY2NoZXR0byBkaSB0b29sIHNnbWwgKHBlciBkYjJodG1sLCBkYjJwcywgZGIycGRmKQpjaGlhbWF0aToKCkRlYmlhbjoJCWRvY2Jvb2stdXRpbHMKTWFuZHJha2U6CQlzZ21sLXRvb2xzLUEuQi5DLUREbWRrClN1c2U6CQlkb2Nia3Rscy1BLkJCLkMtREQKCjguIFBFUiBPVFRFTkVSRSBQSVUnIElORk9STUFaSU9OSQoKV1dXOiBVbiBncmFuIHF1YW50aXRhdGl2byBkaSBpbmZvcm1hemlvbmkgbWVzc2UgYSBkaXNwb3NpemlvbmUgZGEgV2luZUhRIHN1IFdpbmUK6CBkaXNwb25pYmlsZSBhbGwnaW5kaXJpenpvIGh0dHA6Ly93d3cud2luZWhxLmNvbS86IHZhcmllIGd1aWRlIGEgV2luZSwKZGF0YWJhc2UsIGlkZW50aWZpY2F6aW9uZSBkaSBidWcuIFF1ZXN0byDoIHByb2JhYmlsbWVudGUgaWwgbWlnbGlvciBwdW50byBkaQpwYXJ0ZW56YS4KCkZBUTogTGUgRkFRIGRpIFdpbmUgc2kgdHJvdmFubyBhbGwnaW5kaXJpenpvIGh0dHA6Ly93d3cud2luZWhxLmNvbS9GQVEKClVzZW5ldDogUHVvaSBkaXNjdXRlcmUgZGkgYXJnb21lbnRpIGNvbGxlZ2F0aSBhIFdpbmUgZWQgb3R0ZW5lcmUgYWl1dG8gc3UKY29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lLgoKQnVnczogUmlwb3J0YSBpIEJ1ZyBhIFdpbmUgQnVnemlsbGEgYSBodHRwOi8vYnVncy53aW5laHEuY29tIHBlciBmYXZvcmUgY2VyY2EKbmVsIGRhdGFiYXNlIGRpIGJ1Z3ppbGxhIHBlciB2ZXJpZmljYXJlIGNoZSBpbCB0dW8gcHJvYmxlbWEgbm9uIHNpYSBnaeAgc3RhdG8KdHJvdmF0byBwcmltYSBkaSBwb3N0YXJlIHVuIHJhcHBvcnRvIHN1IHVuIGJ1Zy4gUHVvaSBhbmNoZSBwb3N0YXJlIGkgcmFwcG9ydGkKc3VpIGJ1ZyBhIGNvbXAuZW11bGF0b3JzLm1zLXdpbmRvd3Mud2luZS4gUGVyIGZhdm9yZSBsZWdnaSBpbCBmaWxlCmRvY3VtZW50YXRpb24vYnVncy5zZ21sIHBlciB2ZXJpZmljYXJlIHF1YWxpIGluZm9ybWF6aW9uaSBzb25vIHJpY2hpZXN0ZS4KCklSQzogQWl1dG8gb25saW5lIOggZGlzcG9uaWJpbGUgbmVsIGNhbmFsZSAjV2luZWhxIHN1IGlyYy5mcmVlbm9kZS5uZXQuCgpDVlM6IElsIHRyZWUgZGkgc3ZpbHVwcG8gY29ycmVudGUgZGkgd2luZSBlJyBkaXNwb25pYmlsZSBpbiBDVlMuIFZpc2l0YQpodHRwOi8vd3d3LndpbmVocS5jb20vY3ZzIHBlciBhbHRyZSBpbmZvcm1hemlvbmkuCgpNYWlsaW5nIGxpc3Q6IEVzaXN0b25vIGRpdmVyc2UgbWFpbGluZyBsaXN0IHBlciBnbGkgc3ZpbHVwcGF0b3JpIGRpIFdpbmU7IHZpc2l0YQpodHRwOi8vd3d3LndpbmVocS5jb20vZm9ydW1zIHBlciB1bHRlcmlvcmkgaW5mb3JtYXppb25pLgoKU2UgYWdnaXVuZ2kgcXVhbGNvc2EsIG8gY29ycmVnZ2kgdW4gYnVnLCBwZXIgZmF2b3JlIG1hbmRhIHVuYSBwYXRjaCAobmVsIGZvcm1hdG8KJ2RpZmYgLXUnKSBhIHdpbmUtcGF0Y2hlc0B3aW5laHEuY29tIHBlciBlc3NlcmUgaW5jbHVzbyBuZWxsYSBwcm9zc2ltYSByZWxlYXNlLgoKLS0KQWxleGFuZHJlIEp1bGxpYXJkCmp1bGxpYXJkQHdpbmVocS5jb20KCnRyYWRvdHRvIGRhOgpGcmFuY2VzY28gRGkgUHVuemlvCmZyYW5jZXNjb19kaXB1bnppb0B2aXJnaWxpby5pdApzZSB0cm92aSBlcnJvcmkgbmVsbGEgdHJhZHV6aW9uZSBwZXIgZmF2b3JlIHNlZ25hbGFsaSB0cmFtaXRlIGUtbWFpbC4gR3JhemllCg==