ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbXR1dG9yLWZyLjEgYi9ydW50aW1lL2RvYy92aW10dXRvci1mci4xCmluZGV4IDA2ZTAzZmIuLmNkYTAyYzYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZpbXR1dG9yLWZyLjEKKysrIGIvcnVudGltZS9kb2MvdmltdHV0b3ItZnIuMQpAQCAtMSw2MCArMSwxMTkgQEAKLS5USCBWSU1UVVRPUiAxICIyIGF2cmlsIDIwMDEiCisuVEggVklNVFVUT1IgMSAiMyBk6WNlbWJyZSAyMDI0IgogLlNIIE5BTUUKIHZpbXR1dG9yIFwtIHR1dG9yaWVsIFZpbQogLlNIIFNZTk9QU0lTCiAuYnIKLS5CIHZpbXR1dG9yIFtcLWddIFtsYW5ndWVdCisuQiB2aW10dXRvciBbXC1sIHwgXC1cLWxhbmd1YWdlIElTTzYzOV0gW1wtYyB8IFwtXC1jaGFwdGVyIE5VTclST10gW1wtZyB8IFwtXC1ndWldIFtJU082MzldCisuYnIKKy5CIHZpbXR1dG9yIFtcLWggfCBcLVwtaGVscF0KKy5icgorLkIgdmltdHV0b3IgW1wtXC1saXN0XQogLlNIIERFU0NSSVBUSU9OCi0uQiBWaW10dXRvcgorLkIgdmltdHV0b3IKIGxhbmNlIGxlIHR1dG9yaWVsCi0uQiBWaW0KLVwuCi1JbCBjb3BpZSBkJ2Fib3JkIGxlIGZpY2hpZXIgZHUgdHV0b3JpZWwsIGFmaW4gcXVlIHZvdXMgcHVpc3NpZXogbGUgbW9kaWZpZXIKLXNhbnMgYWx06XJlciBsZSBmaWNoaWVyIG9yaWdpbmFsLgorLkJSICJWaW0iICIuIgogLlBQCi0uQiBWaW10dXRvcgotZXN0IHV0aWxlIHBvdXIgbGVzIHBlcnNvbm5lcyBzb3VoYWl0YW50IGFwcHJlbmRyZSBsZXVycyBwcmVtaehyZXMgY29tbWFuZGVzCi0uQiBWaW0KLVwuCisuQiB2aW10dXRvcgorZXN0IHV0aWxlIHBvdXIgbGVzIHBlcnNvbm5lcyBzb3VoYWl0YW50IGFwcHJlbmRyZSBsZXVycyBwcmVtaehyZXMKK2NvbW1hbmRlcworLkJSICJWaW0iICIuIgogLlBQCi1MJ2FyZ3VtZW50IG9wdGlvbm5lbCBcLWcgbGFuY2UgdmltdHV0b3IgYXZlYyBndmltIHBsdXT0dCBxdSdhdmVjIHZpbSwgc2kgbCdJSE0KLWdyYXBoaXF1ZSBkZSB2aW0gZXN0IGRpc3BvbmlibGUsIG91IGxlIGxhbmNlIGF2ZWMgdmltIHNpIGd2aW0gbidlc3QgcGFzCi1kaXNwb25pYmxlLgorTCdhcmd1bWVudCBvcHRpb25lbCBbSVNPNjM5XSBjb3JyZXNwb25kIGF1eCBkZXV4IG91IHRyb2lzIGxldHRyZXMgcXVpIGlkZW50aWZpZW50Cit1bmUgbGFuZ3VlLCBjb21tZSBwYXIgZXhlbXBsZSAiaXQiIG91ICJlcyIuCiAuUFAKLUwnYXJndW1lbnQgb3B0aW9ubmVsIFtsYW5ndWVdIGVzdCBsZSBub20gZCd1bmUgbGFuZ3VlLCBzcOljaWZp6WUgcGFyIHNvbgotc3ltYm9sZSDgIGRldXggbGV0dHJlcywgdGVscyBxdWUgIml0IiBvdSAiZXMiLiBTaSBsJ2FyZ3VtZW50IFtsYW5ndWVdIGVzdCBvbWlzLAotbGEgbGFuZ3VlIGRlIGxhIHLpZ2lvbiBsaW5ndWlzdGlxdWUgYWN0dWVsbGUgc2VyYSByZXRlbnVlLiBTaSBsZSB0dXRvcmllbCBlc3QKLWRpc3BvbmlibGUgZGFucyBjZXR0ZSBsYW5ndWUsIGlsIGVzdCBwcm9wb3PpLiBTaW5vbiwgYydlc3QgbGEgdmVyc2lvbiBhbmdsYWlzZQotcXVpIGVzdCBwcm9wb3PpZS4KKy5CIHZpbXR1dG9yCituZSBmYWl0IHF1J291dnJpciB1bmUgY29waWUgdGVtcG9yYWlyZSBkZXMgZmljaGllcnMgZHUgdHV0b3JpZWwsIGlsIG4neQorYSBkb25jIGF1Y3VuIHJpc3F1ZSBkJ+ljcmFzZXIgbGVzIGxl529ucy4KIC5QUAogLkIgVmltCi1lc3QgdG91am91cnMgbGFuY+kgZW4gbW9kZSBDb21wYXRpYmxlIFZpLgorZXN0IHRvdWpvdXJzIGxhbmPpIGVuIG1vZGUKKy5CIFZpCitjb21wYXRpYmxlLgorLlBQCisuU0ggT1BUSU9OUworLlRQCisuQlIgXC1sICIsICIgXC1cLWxhbmd1YWdlXCBcZklJU082MzlcZlIKK0xlcyBkZXV4IG91IHRyb2lzIGxldHRyZXMgcXVpIGTpdGVybWluZW50IGxhIGxhbmd1ZSwgY29tbWUKK3BhciBleGVtcGxlICdpdCcsICdlcycgb3UgJ2JhcicuCitQYXIgZOlmYXV0LCBsYSBsYW5ndWUgbG9jYWxlIGR1IHN5c3TobWUgZXN0IHV0aWxpc+llLAorb3UgbCdhbmdsYWlzIHNpbm9uLgorLlRQCisuQlIgXC1jICIsICIgXC1cLWNoYXB0ZXJcIFxmSU5VTclST1xmUgorU+lsZWN0aW9ubmUgbGUgY2hhcGl0cmUgZOlzaXLpLiBQYXIgZOlmYXV0LCBjJ2VzdCBsZSBwcmVtaWVyIGNoYXBpdHJlLgorLlRQCisuQlIgXC1nICIsICIgXC1cLWd1aQorTGFuY2UKKy5CIHZpbXR1dG9yCithdmVjIHVuZSBpbnRlcmZhY2UgZ3JhcGhpcXVlIGRlCisuQiBWaW0KK3NpIHBvc3NpYmxlOyBzaW5vbiwgcmV2aWVudCDgIGxhIHZlcnNpb24gY29uc29sZS4KKy5UUAorLkJSIFwtaCAiLCAiIFwtXC1oZWxwCitBZmZpY2hlIGxlcyBpbmZvcm1hdGlvbnMgZCd1c2FnZS4KKy5UUAorLkJSIFwtXC1saXN0CitBZmZpY2hlIGxhIGxpc3RlIGRlcyBjaGFwaXRyZXMgZXQgZGVzIGxhbmd1ZXMuCisuU0ggRVhFTVBMRVMKK1BvdXIgZOltYXJyZXIKKy5CIHZpbXR1dG9yCitlbiBmcmFu52FpcyBhdSBwcmVtaWVyIGNoYXBpdHJlOgorLlBQCisubmYKKy5SUwordmltdHV0b3IgZnIKKy5SRQorLmZpCisuUFAKK0VuIGFuZ2xhaXMgYXUgY2hhcGl0cmUgZGV1eDoKKy5QUAorLm5mCisuUlMKK3ZpbXR1dG9yIC1jMgorLlJFCisuZmkKKy5QUAorUG91ciBsYW5jZXIgKGF2ZWMgbGVzIGNvbW1hbmRlcyBlbiBmb3JtYXQgbG9uZykgbCdpbnRlcmZhY2UgZ3JhcGhpcXVlLAorcG91ciBsZSBiYXZhcm9pcywgYXUgcHJlbWllciBjaGFwaXRyZToKKy5QUAorLm5mCisuUlMKK3ZpbXR1dG9yIC0tbGFuZ3VhZ2UgYmFyIC0tY2hhcHRlciAxIC0tZ3VpCisuUkUKKy5maQogLlNIIEZJQ0hJRVJTCiAuVFAgMTUKLS91c3IvbG9jYWwvbGliL3ZpbS90dXRvci90dXRvclsubGFuZ3VlXQotTGVzIGZpY2hpZXJzIHRleHRlcyBkZQotLkIgVmltdHV0b3IKKy91c3IvbG9jYWwvc2hhcmUvdmltL3ZpbT8/L3R1dG9yL3R1dG9yMVsubGFuZ3VhZ2VdCitMZXMgZmljaGllcnMgZHUgcHJlbWllciBjaGFwaXRyZSBkdQorLkIgdmltdHV0b3IKIFwuCiAuVFAgMTUKLS91c3IvbG9jYWwvbGliL3ZpbS90dXRvci90dXRvci52aW0KLUxlIHNjcmlwdCBWaW0gdXRpbGlz6SBwb3VyIGNvcGllciBsZXMgZmljaGllcnMgdGV4dGUgZGUKLS5CIFZpbXR1dG9yCisvdXNyL2xvY2FsL3NoYXJlL3ZpbS92aW0/Py90dXRvci90dXRvcjJbLmxhbmd1YWdlXQorTGVzIGZpY2hpZXJzIGR1IGRldXhp6G1lIGNoYXBpdHJlIGR1CisuQiB2aW10dXRvcgorXC4KKy5UUCAxNQorL3Vzci9sb2NhbC9zaGFyZS92aW0vdmltPz8vdHV0b3IvdHV0b3IudmltCitMZSBzY3JpcHQKKy5CIFZpbQordXRpbGlz6SBwb3VyIGNvcGllciBsZXMgZmljaGllciBkdQorLkIgdmltdHV0b3IKIFwuCiAuU0ggQVVURVVSCiAuQiBWaW10dXRvcgogYSDpdOkg6WNyaXQg4CBsJ29yaWdpbmUgcG91ciBWaSBwYXIgTWljaGFlbCBDLiBQaWVyY2UgZXQgUm9iZXJ0IEsuIFdhcmUsIGRlIGxhCiBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMsIGVuIHJlcHJlbmFudCBkZXMgaWTpZXMg6W1pc2VzIHBhciBDaGFybGVzIFNtaXRoLCBkZQogbGEgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eS4KLUUtbWFpbCA6IGJ3YXJlQG1pbmVzLmNvbG9yYWRvLmVkdS4KK0NvdXJyaWVsOiBid2FyZUBtaW5lcy5jb2xvcmFkby5lZHUgKG5lIGZvbmN0aW9ubmUgcGx1cykuCiAuYnIKIElsIGEg6XTpIG1vZGlmaekgcG91cgogLkIgVmltCiBwYXIgQnJhbSBNb29sZW5hYXIuCi1Qb3VyIGNvbm5h7nRyZSBsZSBub20gZGVzIHRyYWR1Y3RldXJzLCBjb25zdWx0ZXogbGVzIGZpY2hpZXJzIHRleHRlcyBkdQorUG91ciBjb25uYWl0cmUgbGUgbm9tIGRlcyB0cmFkdWN0ZXVycywgY29uc3VsdGV6IGxlcyBmaWNoaWVycyB0ZXh0ZXMgZHUKIHR1dG9yaWVsLgogLlNIIFZPSVIgQVVTU0kKIHZpbSgxKQogLlNIIFRSQURVQ1RJT04KIENldHRlIHBhZ2UgZGUgbWFudWVsIGEg6XTpIHRyYWR1aXRlIHBhciBEYXZpZCBCbGFuY2hldAogPGRhdmlkLmJsYW5jaGV0QGZyZWUuZnI+IDIwMDQtMTItMjcuCi1NaXNlIOAgam91ciAyMDEyLTA1LTA2LCBEb21pbmlxdWUgUGVsbOkgPGRvbWluaXF1ZS5wZWxsZUBnbWFpbC5jb20+CitNaXNlIOAgam91ciAyMDEyLTA1LTA2LCBEb21pbmlxdWUgUGVsbOkgPGRvbWluaXF1ZS5wZWxsZUBnbWFpbC5jb20+LgorTWlzZSDgIGpvdXIgMjAyNS0wNi0xNiwgRGFtaWVuIExlamF5IDxkYW1pZW5AbGVqYXkuYmU+LgpkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvcjEuZnIgYi9ydW50aW1lL3R1dG9yL3R1dG9yMS5mcgppbmRleCBmNDc5Y2QyLi4yMTdkNjNmIDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yMS5mcgorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yMS5mcgpAQCAtMTAwOSwxMCArMTAwOSwxMyBAQAogCiB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAotICBDZWNpIGNvbmNsdXQgbGUgVHV0b3JpZWwgVmltLiBMZSBidXQgw6l0YWl0IGRlIHZvdXMgZG9ubmVyIHVuIGJyZWYgYXBlcsOndSBkZQotICBsJ8OpZGl0ZXVyIFZpbSwganVzdGUgYXNzZXogcG91ciB2b3VzIHBlcm1ldHRyZSBkJ3V0aWxpc2VyIGwnw6lkaXRldXIKLSAgcmVsYXRpdmVtZW50IGZhY2lsZW1lbnQuIElsIGVzdCBsb2luIGQnw6p0cmUgY29tcGxldCwgdnUgcXVlIFZpbSBhIGJlYXVjb3VwCi0gIHBsdXMgZGUgY29tbWFuZGVzLiBVbiBNYW51ZWwgZGUgbCd1dGlsaXNhdGV1ciBlc3QgZGlzcG9uaWJsZSBlbiBhbmdsYWlzIDoKKyAgVm9pbMOgLCBjJ2VzdCBsYSBmaW4gZHUgY2hhcGl0cmUgMSBkZSBjZSB0dXRvcmllbC4gVm91cyBwb3V2ZXogbWFpbnRlbmFudAorICBwYXNzZXIgYXUgY2hhcGl0cmUgMi4KKworICBMZSBidXQgw6l0YWl0IGRlIHZvdXMgZG9ubmVyIHVuIGJyZWYgYXBlcsOndSBkZSBsJ8OpZGl0ZXVyIFZpbSwganVzdGUgYXNzZXogcG91cgorICB2b3VzIHBlcm1ldHRyZSBkJ3V0aWxpc2VyIGwnw6lkaXRldXIgcmVsYXRpdmVtZW50IGZhY2lsZW1lbnQuCisgIElsIGVzdCBsb2luIGQnw6p0cmUgY29tcGxldCwgdnUgcXVlIFZpbSBhIGJlYXVjb3VwIHBsdXMgZGUgY29tbWFuZGVzLgorICBVbiBNYW51ZWwgZGUgbCd1dGlsaXNhdGV1ciBlc3QgZGlzcG9uaWJsZSBlbiBhbmdsYWlzIDoKICAgICA6aGVscCB1c2VyLW1hbnVhbAogCiAgIFBvdXIgY29udGludWVyIMOgIGTDqWNvdXZyaXIgZXQgw6AgYXBwcmVuZHJlIFZpbSwgaWwgZXhpc3RlIHVuIGxpdnJlIHRyYWR1aXQgZW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IyLmZyIGIvcnVudGltZS90dXRvci90dXRvcjIuZnIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIxMTRiNgotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IyLmZyCkBAIC0wLDAgKzEsMjEzIEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9ICAgIEIgaSBlIG4gdiBlIG4gdSBlICBkYW5zICBsIGUgIFQgdSB0IG8gciBpIGUgbCAgZGUgIFZJTSAgIOKAkyAgIFZlcnNpb24gMS43ID0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKz0JCQkgICAgQyBIIEEgUCBJIFQgUiBFICAgREVVWAkJCSAgICAgID0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICBIaWMgc3VudCBkcmFjb25lc+KArzogc2kgY8q8ZXN0IGxhIHByZW1pw6hyZSBmb2lzIHF1ZSB2b3VzIHV0aWxpc2V6IFZpbQorICAgICBldCBxdWUgdm91cyBzb3VoYWl0ZXogYWNjw6lkZXIgYXUgdHV0b3JpZWwgZMq8aW50cm9kdWN0aW9uLCB0YXBlegorICAgICBsZXMgdHJvaXMgdG91Y2hlcyAgOnEhICBwdWlzIGxhIHRvdWNoZSA8RU5UUsOJRT4gZXQgcmVjb21tZW5jZXouCisKKyAgICAgSWwgdm91cyBmYXVkcmEgZW50cmUgOCBldCAxMCBtaW51dGVzIHBvdXIgdGVybWluZXIgY2UgY2hhcGl0cmUsIHNlbG9uCisgICAgIHF1ZSB2b3VzIHBhc3NpZXogcGx1cyBvdSBtb2lucyBkZSB0ZW1wcyDDoCBleHDDqXJpbWVudGVyLgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwkJCUxlw6dvbiAyLjEuMeKArzogUkVHSVNUUkVTIE5PTU3DiVMKKworCisgICAgICAgICAqKiBDb25zZXJ2ZXIgZGV1eCBtb3RzIGNvcGnDqXMgZW4gcGFyYWxsw6hsZSwgcHVpcyBsZXMgY29sbGVyICoqCisKKyAgMS4gRMOpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIGNpLWRlc3NvdXMgY29tbWVuw6dhbnQgcGFy4oCvOiAtLS0+CisKKyAgMi4gUGxhY2V6LXZvdXMgbsq8aW1wb3J0ZSBvw7kgZGFucyBsZSBtb3QgJ8OJZG91YXJkJyBldCB0YXBleiAgICJheWl3CisKK0FJREUgTU7DiU1PVEVDSE5JUVVF4oCvOglkYW5zIGxlIHJlZ2lzdHJlKCIpIG5vbW3DqSAoYSkgKHkpYW5rIGxhIHBvcnRpb24KKwkoaSludGVybmUgZHUgKHcpb3JkIHNvdXMtamFjZW50CisKKyAgMy4gQXZhbmNleiBqdXNxdcq8YXUgbW90ICdjaG91cXVldHRlcycgKGZxIG91IDJmYyBvdSAkIG91IC9jaDxFTlRSw4lFPikKKyAgICAgZXQgdGFwZXogICAiYnlpdworCisgIDQuIFJlbmRlei12b3VzIHN1ciBsZSBtb3QgJ1ZpbmNlbnQnIGV0IHRhcGV6ICAgY2l3PENUUkwtUj5hPMOJQ0hBUD4KKworQUlERSBNTsOJTU9URUNITklRVUXigK86CcOpKGMpaGFuZ2UgbGEgcGFydGllIChpKW50ZXJuZSBkdSAodylvcmQgc291cy1qYWNlbnQKKwlhdmVjIGxlIDxjb250ZW51IGR1IChyKWVnaXN0cmU+IG5vbW3DqSAoYSkKKworICA1LiBSZW5kZXotdm91cyBzdXIgbGUgbW90ICdjcm9pc3NhbnQnIGV0IHRhcGV6ICAgY2l3PENUUkwtUj5iPMOJQ0hBUD4KKworLS0tPiAgYSkgw4lkb3VhcmQgYXVyYSB0b3V0ZSBhdXRvcml0w6kgc3VyIGxlIGNvbnRpbmdlbnRlbWVudCBkZXMgY2hvdXF1ZXR0ZXMKKyAgICAgIGIpIMOAIGNlIHRpdHJlLCBWaW5jZW50IGV4ZXJjZXJhIHNldWwgbGUgcG91dm9pciBkaXNjcsOpdGlvbm5haXJlIHN1cgorICAgICAgICAgbMq8YXR0cmlidXRpb24gZGVzIGNyb2lzc2FudHMuCisKK05PVEXigK86IE9uIHBldXQgYXVzc2kgdXRpbGlzZXIgbGVzIHJlZ2lzdHJlcyBhdmVjIGxhIGNvbW1hbmRlIGRlIHN1cHByZXNzaW9uLgorICAgICAgIFRhcGVyICAic2RpdyBzdXBwcmltZXJhIGxlIG1vdCBzb3VzLWphY2VudCBldCBlbiBjb25zZXJ2ZXJhIHVuZSBjb3BpZQorICAgICAgIGRhbnMgbGUgcmVnaXN0cmUgKHMpLgorCitSw4lGw4lSRU5DRVM6IAlSZWdpc3RyZXMgCQk6aCByZWdpc3RlcnMKKwkJUmVnaXN0cmVzIG5vbW3DqXMJOmggcXVvdGVhCisJCU1vdXZlbWVudHMgCQk6aCBtb3Rpb24udHh0PEVOVFLDiUU+IC9pbm5lcjxFTlRSw4lFPgorCQlDVFJMLVIJCQk6aCBpbnNlcnQ8RU5UUsOJRT4gL0NUUkwtUjxFTlRSw4lFPgorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworCQkgICAgIExlw6dvbiAyLjEuMuKArzogTEUgUkVHSVNUUkUgRMq8RVhQUkVTU0lPTlMKKworCisJICAgICAqKiBJbnPDqXJlciDDoCBsYSB2b2zDqWUgbGUgcsOpc3VsdGF0IGTKvHVuIGNhbGN1bCAqKgorCisgIDEuIETDqXBsYWNleiBsZSBjdXJzZXVyIHN1ciBsYSBsaWduZSBjaS1kZXNzb3VzIGNvbW1lbsOnYW50IHBhcuKArzogLS0tPgorCisgIDIuIFBsYWNlei12b3VzIHN1ciBsZSBub21icmUKKworICAzLiBUYXBleiAgY2l3PENUUkwtUj4gc3VpdmkgZGUgID02MCo2MCoyNDxFTlRSw4lFPgorCisgIDQuIFN1ciBsYSBsaWduZSBzdWl2YW50ZSwgZW4gbW9kZSBJbnNlcnRpb24sIGFqb3V0ZXogbGEgZGF0ZSBkdSBqb3VyIGF2ZWMKKyAgICAgPENUUkwtUj4gc3VpdmkgZGUgID1zeXN0ZW0oJ2RhdGUnKTxFTlRSw4lFPgorCitOT1RF4oCvOiBUb3VzIGxlcyBhcHBlbHMgc3lzdMOobWUgZMOpcGVuZGVudCBkZSB2b3RyZSBzeXN0w6htZSBkyrxleHBsb2l0YXRpb24uIFBhcgorICAgICAgZXhlbXBsZSBzdXIgTVMtV2luZG93cywgdXRpbGlzZXogcGx1dMO0dAorICAgICAgc3lzdGVtKCdkYXRlIC90JykgICBvdSAgOnIhZGF0ZSAvdAorCistLS0+IERhbnMgdW5lIGpvdXJuw6llLCBpbCB5IGEgMTAwIHNlY29uZGVzLgorICAgICBBdWpvdXJkyrxodWksIG5vdXMgc29tbWVz4oCvOgorCitOT1RFOiBvbiBhcnJpdmUgYXUgbcOqbWUgcsOpc3VsdGF0IGF2ZWMgIDpwdT1zeXN0ZW0oJ2RhdGUnKQorICAgICAgb3UsIHBsdXMgY291cnQgIDpyIWRhdGUKKworUsOJRsOJUkVOQ0XigK86IAlSZWdpc3RyZSBkyrxleHByZXNzaW9ucyAJOmggcXVvdGU9CisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisJCSAgICAgIExlw6dvbiAyLjEuM+KArzogTEVTIFJFR0lTVFJFUyBOVU3DiVJPVMOJUworCisKKwkqKiBUYXBleiAgeXkgZXQgZGQgYWZpbiBkZSBjb250ZW1wbGVyIGxldXIgZWZmZXQgc3VyIGxlcyByZWdpc3RyZXMgKioKKworICAxLiBEw6lwbGFjZXogbGUgY3Vyc2V1ciBzdXIgbGEgbGlnbmUgY2ktZGVzc291cyBjb21tZW7Dp2FudCBwYXLigK86IC0tLT4KKworICAyLiBDb3BpZXogKHl5KSBsYSBsaWduZSAwLCBwdWlzIGluc3BlY3RleiBsZXMgcmVnaXN0cmVzIGF2ZWMgIDpyZWc8RU5UUsOJRT4KKworICAzLiBTdXBwcmltZXogbGEgbGlnbmUgMCBhdmVjICAiY2RkLCBwdWlzIGluc3BlY3RleiBsZXMgcmVnaXN0cmVzCisgICAgIChPw7kgcGVuc2V6LXZvdXMgcmV0cm91dmVyIGxhIGxpZ25lIDDigK8/KQorCisgIDQuIENvbnRpbnVleiDDoCBzdXBwcmltZXIgY2hhcXVlIGxpZ25lIHN1Y2Nlc3NpdmVtZW50IChhdmVjIGRkKSwgdG91dCBlbgorICAgICByZWdhcmRhbnQgbGUgcsOpc3VsdGF0IGF1IHBhc3NhZ2UgYXZlYyAgOnJlZy4KKworTk9UReKArzogVm91cyBkZXZyaWV6IHJlbWFycXVlciBxdWUgbGVzIGFuY2llbm5lcyBsaWduZXMgc3VwcHJpbcOpZXMgZGVzY2VuZGVudAorICAgICAgIGRhbnMgbGEgbGlzdGUgZGVzIHJlZ2lzdHJlcyBhdSBmdXIgZXQgw6AgbWVzdXJlIHF1ZSB2b3VzIHN1cHByaW1leiBkZQorICAgICAgIG5vdXZlbGxlcyBsaWduZXMuCisKKyAgNS4gTWFpbnRlbmFudCBjb2xsZXogbGUgY29udGVudSBkZXMgcmVnaXN0cmVzIHN1aXZhbnQsIGRhbnMgY2V0IG9yZHJl4oCvOgorICAgICBjLCA3LCA0LCAyLCA4LiBpLmUgY29sbGV6IGF2ZWMgICJjcCBwdWlzICI3cCBwdWlzIGV0Yy4gCisKKy0tLT4gMC4gQ2VjaQorICAgICA5LiB6aWd6YWcKKyAgICAgOC4gc2VjcmV0CisgICAgIDcuIGVzdAorICAgICA2LiBvbgorICAgICA1LiBheGUKKyAgICAgNC4gdW4KKyAgICAgMy4gZ3VlcnJlCisgICAgIDIuIG1lc3NhZ2UKKyAgICAgMS4gaG9tbWFnZSAKKworTk9UReKArzogTGVzIGxpZ25lcyBlbnRpw6hyZW1lbnQgc3VwcHJpbcOpZXMgKHZpYSBkZCkgcmVzdGVudCBiZWF1Y291cCBwbHVzCisgICAgICAgbG9uZ3RlbXBzIGRhbnMgbGVzIHJlZ2lzdHJlcyBudW3DqXJvdMOpcyBxdWUgbGVzIGxpZ25lcyBjb3Bpw6llcyAodmlhIHl5KQorICAgICAgIG91IGxlcyBzdXBwcmVzc2lvbnMgaW1wbGlxdWFudCBkZXMgbW91dmVtZW50cyBwbHVzIGNvdXJ0cy4KKworUsOJRsOJUkVOQ0XigK86IAlSZWdpc3RyZXMgbnVtw6lyb3TDqXMgCTpoIHF1b3RlMAorCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisJCSAgICAgIExlw6dvbiAyLjEuNOKArzogTMq8w4lMw4lHQU5DRSBERVMgTUFSUVVFUworCisKKwkJKiogTMq8YXJ0IGTKvMOpdml0ZXIgbGVzIGNhbGN1bHMgcG91ciBsZSBjb2RldXIgZMOpY8OpcsOpYnLDqSAqKgorCitOT1RF4oCvOiBFbiBwcm9ncmFtbWF0aW9uLCBkw6lwbGFjZXIgZGUgZ3JvcyBibG9jcyBkZSBjb2RlIGVzdCBzb3V2ZW50IHVuZSB2cmFpZQorICAgICAgIGNvcnbDqWUuIExlIHNvdWNpIG7KvGVzdCBwYXMgbGEgZGlmZmljdWx0w6kgZGUgbMq8b3DDqXJhdGlvbiwgbWFpcyBsYQorICAgICAgIGd5bW5hc3RpcXVlIG1lbnRhbGUgcXXKvGltcG9zZW50IGxlcyBjYWxjdWxzIGRlIG51bcOpcm9zIGRlIGxpZ25lIOKAlCB1bmUKKyAgICAgICB0w6JjaGUgZmFzdGlkaWV1c2UgZXQgc291cmNlIGTKvGVycmV1cnMuCisgICAgICAgTGEgdGVjaG5pcXVlIHF1aSBzdWl0IHZvdXMgw6lwYXJnbmUganVzdGVtZW50IGNlIHRyYWNhcyBwb3VyIGRlcworICAgICAgIG9ww6lyYXRpb25zIGNvbW1lICAgImExNDdkICAgb3UgICA6OTQ1LDEwOTFkIGEgICBvdSBwaXJlIGVuY29yZQorICAgICAgIGk8Q1RSTC1SPiBzdWl2aSBkZSAgPTEwOTEtOTQ1PEVOVFLDiUU+CisKKyAgMS4gRMOpcGxhY2V6IGxlIGN1cnNldXIgc3VyIGxhIGxpZ25lIGNpLWRlc3NvdXMgY29tbWVuw6dhbnQgcGFy4oCvOiAtLS0+CisKKyAgMi4gUGxhY2V6LXZvdXMgc3VyIGxhIHByZW1pw6hyZSBsaWduZSBkZSBsYSBmb25jdGlvbiBldCBwbGFjZXogdW5lIG1hcnF1ZSAoYSkKKyAgICAgYXZlYyAgIG1hCisKK05PVEXigK86IHBldSBpbXBvcnRlIGxhIHBvc2l0aW9uIGV4YWN0ZSBzdXIgbGEgbGlnbmUuCisKKyAgMy4gQWxsZXogw6AgbGEgZmluIGRlIGxhIGxpZ25lLCBwdWlzIMOgIGxhIGZpbiBkdSBibG9jIGRlIGNvZGUgYXZlYyAgJCUKKworICA0LiBTdXBwcmltZXogbGUgYmxvYyBldCBjb25zZXJ2ZXotbGUgZGFucyBsZSByZWdpc3RyZSAoYSkgYXZlYyAgImFkJ2EKKworQUlERSBNTsOJTU9URUNITklRVUXigK86CWRlbWFuZGUgYXUgcmVnaXN0cmUoIikgbm9tbcOpIChhKSBkZSBjb25zZXJ2ZXIgbGEKKwkoZCnDqWzDqXRpb24gZWZmZWN0dcOpZSBkZXB1aXMgbGUgY3Vyc2V1ciBqdXNxdcq8w6AgbGEgTElHTkUgY29udGVuYW50IGxhCisJbWFycXVlKCcpIChhKQorCisgIDUuIENvbGxleiBsZSBibG9jIGVudHJlIEJCQiBldCBDQ0MgYXZlYyAgImFwCisKK05PVEXigK86IGV4ZXJjZXotdm91cyBwbHVzaWV1cnMgZm9pcyBwb3VyIHF1ZSDDp2EgZGV2aWVubmUgbmF0dXJlbCAgIG1hJCUiYWQnYQorCistLS0+IEFBQQorICAgICBmdW5jdGlvbiBpdEdvdFJlYWxCaWdSZWFsRmFzdCgpIHsKKyAgICAgICBpZiAoIHNvbWV0aGluZ0lzVHJ1ZSApIHsKKyAgICAgICAgIGRvSXQoKQorICAgICAgIH0KKyAgICAgICAvLyB0aGUgdGF4b25vbXkgb2Ygb3VyIGZ1bmN0aW9uIGhhcyBjaGFuZ2VkIGFuZCBpdAorICAgICAgIC8vIG5vIGxvbmdlciBtYWtlcyBhbHBoYWJldGljYWwgc2Vuc2UgaW4gaXRzIGN1cnJlbnQgcG9zaXRpb24KKworICAgICAgIC8vIGltYWdpbmUgaHVuZHJlZHMgb2YgbGluZXMgb2YgY29kZQorCisgICAgICAgLy8gbmFpdmVseSB5b3UgY291bGQgbmF2aWdhdGUgdG8gdGhlIHN0YXJ0IGFuZCBlbmQgYW5kIHJlY29yZCBvcgorICAgICAgIC8vIHJlbWVtYmVyIGVhY2ggbGluZSBudW1iZXIKKyAgICAgfQorICAgICBCQkIKKyAgICAgQ0NDCisKK05PVEXigK86IGxlcyBtYXJxdWVzIGV0IGxlcyByZWdpc3RyZXMgbmUgcGFydGFnZW50IHBhcyBsZXVyIGVzcGFjZSBkZSBub21zLAorICAgICAgIGxlIHJlZ2lzdHJlIChhKSBlc3QgY29tcGzDqHRlbWVudCBpbmTDqXBlbmRhbnQgZGUgbGEgbWFycXVlIChhKS4KKyAgICAgICBPbiBuZSBwZXV0IHBhcyBlbiBkaXJlIGF1dGFudCBkZXMgcmVnaXN0cmVzIGV0IGRlcyBtYWNyb3MuCisKK1LDiUbDiVJFTkNFU+KArzoJTWFycXVlcwkJOmggbWFya3MKKwkJCQk6aCBtYXJrLW1vdGlvbnMgIChkaWZmw6lyZW5jZSBlbnRyZSAnIGV0IGAgKQorCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworCQkJICAgICAgIExlw6dvbiAyLjEgUsOJU1VNw4kKKworCisgIDEuIFV0aWxpc2VyIGzKvHVuIGRlcyAyNiByZWdpc3RyZXMgbm9tbcOpcyAoYS16KSBwb3VyIGNvbnNlcnZlcgorICAgICAoY29waWVyL3N1cHByaW1lcikgZXQgY29sbGVyIGR1IHRleHRlLgorICAyLiBDb3BpZXIgdW4gbW90IGVudGllciBlbiBwbGHDp2FudCBsZSBjdXJzZXVyIHN1ciBsZSBtb3TigK86ICAgeWl3CisgIDMuIENoYW5nZXIgdW4gbW90IGVudGllciBlbiBwbGHDp2FudCBsZSBjdXJzZXVyIHN1ciBsZSBtb3TigK86ICAgY2l3CisgIDQuIEluc8OpcmVyIGR1IHRleHRlIGRpcmVjdGVtZW50IGRlcHVpcyB1biByZWdpc3RyZSwgZW4gbW9kZSBJbnNlcnRpb27igK86CisgICAgIDxDVFJMLVI+YQorCisgIDUuIEluc8OpcmVyIGxlIHLDqXN1bHRhdCBkyrx1bmUgb3DDqXJhdGlvbiBhcml0aG3DqXRpcXVlIHNpbXBsZeKArzoKKyAgICAgPENUUkwtUj4gc3VpdmkgZGUgID02MCo2MDxFTlRSw4lFPiBlbiBtb2RlIEluc2VydGlvbgorICA2LiBJbnPDqXJlciBsZSByw6lzdWx0YXQgZMq8dW4gYXBwZWwgc3lzdMOobWXigK86IDxDVFJMLVI+IHN1aXZpIGRlCisgICAgID1zeXN0ZW0oJ2xzIC0xJyk8RU5UUsOJRT4KKyAgICAgZW4gbW9kZSBJbnNlcnRpb24KKworICA3LiBJbnNwZWN0ZXIgbGVzIHJlZ2lzdHJlcyBhdmVjICAgOnJlZworICA4LiBBcHByZW5kcmUgcG91cnF1b2kgbGVzIHN1cHByZXNzaW9ucyBkZSBsaWduZXMgZW50acOocmVzIChkZCkgc29udAorICAgICBwcsOpc2VydsOpZXMgcGx1cyBsb25ndGVtcHPigK86IGVsbGVzIGLDqW7DqWZpY2llbnQgZGVzIHJlZ2lzdHJlcyAxIMOgIDkgZXQgc29udAorICAgICBwcsOpc2VydsOpZXMgcGx1cyBsb25ndGVtcHMgcXVlIHRvdXRlIGF1dHJlIG9ww6lyYXRpb24KKyAgOS4gQXBwcmVuZHJlIGxhIGRlc3RpbmF0aW9uIGZpbmFsZSBkZSB0b3V0ZXMgbGVzIGNvcGllcyBkYW5zIGxlcyByZWdpc3RyZXMKKyAgICAgbnVtw6lyb3TDqXMgZXQgw6AgcXVlbCBwb2ludCBlbGxlcyBzb250IMOpcGjDqW3DqHJlcworCisgMTAuIFBsYWNlciBkZXMgbWFycXVlcyBkZXB1aXMgbGUgbW9kZSBOb3JtYWwgICBtW2EtekEtWjAtOV0KKyAxMS4gU2UgZMOpcGxhY2VyIGxpZ25lIHBhciBsaWduZSBqdXNxdcq8w6AgdW5lIG1hcnF1ZSBhdmVjICAnCisKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgIFZvaWzDoCwgdm91cyDDqnRlcyBhcnJpdsOpIMOgIGxhIGZpbiBkdSBjaGFwaXRyZSBkZXV4IGR1IHR1dG9yaWVsIGRlIFZpbS4gSWwgZXN0CisgIGVuY29yZSBlbiBjaGFudGllci4KKworICBDZSBjaGFwaXRyZSBhIMOpdMOpIMOpY3JpdCBwYXIgUGF1bCBELiBQYXJrZXIsCisgIGlsIGEgw6l0w6kgdHJhZHVpdCBlbiBmcmFuw6dhaXMgcGFyIERhbWllbiBMZWpheS4KKworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cg==