ZGlmZiAtLWdpdCBhL3J1bnRpbWUvdHV0b3IvdHV0b3IuaXQgYi9ydW50aW1lL3R1dG9yL3R1dG9yLml0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxZjY3OTgKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLml0CkBAIC0wLDAgKzEsOTY3IEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis9ICAgIEJlbnZlbnV0byAgYWxsYSAgIEcgdSBpIGQgYSAgICBhbGwnRWRpdG9yICAgViBJIE0gICAtICAgIFZlcnNpb25lIDEuNyAgICA9Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgVmltIOggdW4gRWRpdG9yIG1vbHRvIHBvdGVudGUgZWQgaGEgcGFyZWNjaGkgY29tYW5kaSwgdHJvcHBpIHBlcgorICAgICBzcGllZ2FybGkgdHV0dGkgaW4gdW5hIGd1aWRhIGNvbWUgcXVlc3RhLiAgUXVlc3RhIGd1aWRhIHNlcnZlIGEKKyAgICAgZGVzY3JpdmVyZSBxdWVpIGNvbWFuZGkgY2hlIHRpIHBlcm1ldHRvbm8gZGkgdXNhcmUgZmFjaWxtZW50ZQorICAgICBWaW0gY29tZSBFZGl0b3IgZGkgdXNvIGdlbmVyYWxlLgorCisgICAgIElsIHRlbXBvIG5lY2Vzc2FyaW8gcGVyIGNvbXBsZXRhcmUgbGEgZ3VpZGEg6CBjaXJjYSAyNS0zMCBtaW51dGksCisgICAgIGEgc2Vjb25kYSBkaSBxdWFudG8gdGVtcG8gZGVkaWNoaSBhbGxhIHNwZXJpbWVudGF6aW9uZS4KKworICAgICBBVFRFTlpJT05FIQorICAgICBJIGNvbWFuZGkgbmVsbGUgbGV6aW9uaSBtb2RpZmljYW5vIHF1ZXN0byB0ZXN0by4gRmFpIHVuYSBjb3BpYSBkaSBxdWVzdG8KKyAgICAgZmlsZSBwZXIgZXNlcmNpdGFydGkgKHNlIGhhaSB1c2F0byAidmltdHV0b3IiLCBzdGFpIGdp4CB1c2FuZG8gdW5hIGNvcGlhKS4KKworICAgICBFJyBpbXBvcnRhbnRlIG5vbiBzY29yZGFyZSBjaGUgcXVlc3RhIGd1aWRhIHZ1b2xlIGluc2VnbmFyZSB0cmFtaXRlCisgICAgIGwndXNvLiBRdWVzdG8gdnVvbCBkaXJlIGNoZSBkZXZpIGVzZWd1aXJlIGkgY29tYW5kaSBwZXIgaW1wYXJhcmxpCisgICAgIGRhdnZlcm8uIFNlIGxlZ2dpIGlsIHRlc3RvIGUgYmFzdGEsIGRpbWVudGljaGVyYWkgcHJlc3RvIGkgY29tYW5kaSEKKworICAgICBBZGVzc28sIGFzc2ljdXJhdGkgY2hlIGlsIHRhc3RvIEJMT0NDQS1NQUlVU0NPTE8gbm9uIHNpYSBzY2hpYWNjaWF0bworICAgICBlIHByZW1pIGlsIHRhc3RvICAgIGogICAgdGFudG8gZGEgbXVvdmVyZSBpbCBjdXJzb3JlIGZpbm8gYSBjaGUgbGEKKyAgICAgTGV6aW9uZSAxLjEgcmllbXBpYSBjb21wbGV0YW1lbnRlIGxvIHNjaGVybW8uCit+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+fn4KKwkJCUxlemlvbmUgMS4xOiAgTU9WSU1FTlRJIERFTCBDVVJTT1JFCisKKworICAgKiogUGVyIG11b3ZlcmUgaWwgY3Vyc29yZSwgcHJlbWkgaSB0YXN0aSBoLGosayxsIGNvbWUgaW5kaWNhdG8uICoqCisJICAgICBeCisJICAgICBrCQkgICAgTk9UQTogIElsIHRhc3RvIGgg6CBhIHNpbmlzdHJhIGUgbXVvdmUgYSBzaW5pc3RyYS4KKyAgICAgICA8IGgJIGwgPgkJICAgSWwgdGFzdG8gbCDoIGEgZGVzdHJhIGUgbXVvdmUgYSBkZXN0cmEuCisJICAgICBqCQkJICAgSWwgdGFzdG8gaiByaWNvcmRhIHVuYSBmcmVjY2lhIGluIGdp+S4KKwkgICAgIHYKKyAgMS4gTXVvdmkgaWwgY3Vyc29yZSBzdWxsbyBzY2hlcm1vIGZpbmNo6SBub24gdGkgc2VudGkgYSB0dW8gYWdpby4KKworICAyLiBUaWVuaSBzY2hpYWNjaWF0byBpbCB0YXN0byAiZ2n5IiAoaikgZmluY2jpIG5vbiBzaSByaXBldGUgaWwgbW92aW1lbnRvLgorICAgICBBZGVzc28gc2FpIGNvbWUgYXJyaXZhcmUgZmlubyBhbGxhIGxlemlvbmUgc2VndWVudGUuCisKKyAgMy4gVXNhbmRvIGlsIHRhc3RvICJnafkiIHNwb3N0YXRpIGFsbGEgTGV6aW9uZSAxLjIuCisKK05PVEE6IFF1YW5kbyBub24gc2VpIHNpY3VybyBkZWwgdGFzdG8gY2hlIGhhaSBwcmVtdXRvLCBwcmVtaSA8RVNDPiBwZXIgYW5kYXJlCisgICAgICBpbiBNb2RhbGl04CBOb3JtYWxlIFtOb3JtYWwgTW9kZV0uIFBvaSByaS1pbW1ldHRpIGlsIGNvbWFuZG8gY2hlIHZvbGV2aS4KKworTk9UQTogSSB0YXN0aSBjb24gbGUgZnJlY2NlIGZhbm5vIGxvIHN0ZXNzbyBzZXJ2aXppby4gTWEgdXNhbmRvIGhqa2wgcmllc2NpCisgICAgICBhIG11b3ZlcnRpIG1vbHRvIHBp+SByYXBpZGFtZW50ZSwgZG9wbyBjaGUgY2kgc2kgYWJpdHVhLiAgRGF2dmVybyEKKworfn5+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+CisJCQlMZXppb25lIDEuMjogVVNDSVJFIERBIFZJTQorCisKKyAgISEgTk9UQTogUHJpbWEgZGkgZXNlZ3VpcmUgcXVhbnRvIHJpY2hpZXN0bywgbGVnZ2kgbGEgTGV6aW9uZSBwZXIgaW50ZXJvISEKKworICAxLiBQcmVtaSBpbCB0YXN0byA8RVNDPiAocGVyIGFzc2ljdXJhcnRpIGRpIGVzc2VyZSBpbiBNb2RhbGl04CBOb3JtYWxlKS4KKworICAyLiBCYXR0aTogICAgIDpxISA8SU5WSU8+LgorICAgICBDb3PsIGVzY2kgZGFsbCdFZGl0b3IgU0NBUlRBTkRPIHF1YWxzaWFzaSBtb2RpZmljYSBmYXR0YS4KKworICAzLiBRdWFuZG8gdmVkaSBpbCBQUk9NUFQgZGVsbGEgU2hlbGwsIGJhdHRpIGlsIGNvbWFuZG8gY29uIGN1aSBzZWkgYXJyaXZhdG8KKyAgICAgcXVpLiAgU2FyZWJiZToJdmltdHV0b3IgPElOVklPPgorCisgIDQuIFNlIGhhaSBtZW1vcml6emF0byBxdWVzdGkgY29tYW5kaSBlIHRpIHNlbnRpIHByb250bywgZXNlZ3VpIGkgcGFzc2kKKyAgICAgZGEgMSBhIDMgcGVyIHVzY2lyZSBlIHJpZW50cmFyZSBuZWxsJ0VkaXRvci4KKworTk9UQTogIDpxISA8SU5WSU8+IFNDQVJUQSBxdWFsc2lhc2kgbW9kaWZpY2EgZmF0dGEuICBJbiB1bmEgZGVsbGUgcHJvc3NpbWUKKyAgICAgICBsZXppb25pIGltcGFyZXJhaSBjb21lIHNhbHZhcmUgdW4gZmlsZSBjaGUgaGFpIG1vZGlmaWNhdG8uCisKKyAgNS4gTXVvdmkgaW4gZ2n5IGlsIGN1cnNvcmUgcGVyIHBhc3NhcmUgYWxsYSBsZXppb25lIDEuMy4KKworCit+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+fn4KKwkJTGV6aW9uZSAxLjM6IE1PRElGSUNBIERJIFRFU1RJIC0gQ0FOQ0VMTEFaSU9ORQorCisKKwkqKiBQcmVtZXJlICB4ICBwZXIgY2FuY2VsbGFyZSBpbCBjYXJhdHRlcmUgc290dG8gYWwgY3Vyc29yZSAqKgorCisgIDEuIE11b3ZpIGlsIGN1cnNvcmUgYWxsYSBsaW5lYSBwafkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCisKKyAgMi4gUGVyIGNvcnJlZ2dlcmUgZXJyb3JpLCBtdW92aSBpbCBjdXJzb3JlIGZpbm8gYSBwb3NpemlvbmFybG8gc29wcmEgaWwKKyAgICAgY2FyYXR0ZXJlIGRhIGNhbmNlbGxhcmUuCisKKyAgMy4gUHJlbWkgaWwgdGFzdG8JeCAgICAgcGVyIGNhbmNlbGxhcmUgaWwgY2FyYXR0ZXJlIHNiYWdsaWF0by4KKworICA0LiBSaXBldGkgaSBwYXNzaSBkYSAyIGEgNCBmaW5jaOkgbGEgZnJhc2Ug6CBjb3JyZXR0YS4KKworLS0tPiBMYSBtbXVjY2Egc2FsdPLyIGZpbm5vbyBhbGxhYSBsdW5ubmEuCisKKyAgNS4gT3JhIGNoZSBsYSBsaW5lYSDoIGNvcnJldHRhLCB2YWkgYWxsYSBMZXppb25lIDEuNAorCitOT1RBOiBNZW50cmUgc2VndWkgcXVlc3RhIGd1aWRhLCBub24gY2VyY2FyZSBkaSBpbXBhcmFyZSBhIG1lbW9yaWEsCisgICAgICBtYSBpbXBhcmEgZmFjZW5kbyBwcmF0aWNhLgorCisKK35+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+fgorCQlMZXppb25lIDEuNDogTU9ESUZJQ0EgREkgVEVTVEkgLSBJTlNFUklNRU5UTworCisKKyAgICAgICAgICAgICAgICAgICAqKiBQcmVtZXJlICBpICBwZXIgaW5zZXJpcmUgdGVzdG8uICoqCisKKyAgMS4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHByaW1hIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KKworICAyLiBQZXIgcmVuZGVyZSBsYSBwcmltYSBsaW5lYSB1Z3VhbGUgYWxsYSBzZWNvbmRhLCBtdW92aSBpbCBjdXJzb3JlIHNvcHJhCisgICAgIGlsIHByaW1vIGNhcmF0dGVyZSBET1BPIGxhIHBvc2l6aW9uZSBpbiBjdWkgaWwgdGVzdG8gdmEgaW5zZXJpdG8uCisKKyAgMy4gUHJlbWkgIGkgIGUgYmF0dGkgbGUgYWdnaXVudGUgb3Bwb3J0dW5lLgorCisgIDQuIFF1YW5kbyB1biBlcnJvcmUg6CBjb3JyZXR0bywgcHJlbWkgPEVTQz4gcGVyIHRvcm5hcmUgaW4gTW9kYWxpdOAgTm9ybWFsZS4KKyAgICAgUmlwZXRpIGkgcGFzc2kgZGEgMiBhIDQgZmlubyBhIGNvbXBsZXRhcmUgbGEgY29ycmV6aW9uZSBkZWxsYSBmcmFzZS4KKworLS0tPiBDJ2VyYSBkZWwgdHN0byBtbmNudCBxdWVzdGEgLgorLS0tPiBDJ2VyYSBkZWwgdGVzdG8gbWFuY2FudGUgZGEgcXVlc3RhIGxpbmVhLgorCisgIDUuIFF1YW5kbyBzZWkgYSB0dW8gYWdpbyBuZWxsJ2luc2VyaW1lbnRvIGRpIHRlc3RvIHZhaSBhbGxhIGxlemlvbmUgMS41LgorCisKKworfn5+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+CisJCSBMZXppb25lIDEuNTogTU9ESUZJQ0EgREkgVEVTVEkgLSBBR0dJVU5UQQorCisKKwkgICAqKiBQcmVtZXJlICBBICBwZXIgYWdnaXVuZ2VyZSB0ZXN0byBhIGZpbmUgbGluZWEuICoqCisKKyAgMS4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHByaW1hIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KKyAgICAgTm9uIGltcG9ydGEgZG92ZSDoIHBvc2l6aW9uYXRvIGlsIGN1cnNvcmUgc3VsbGEgbGluZWEgc3Rlc3NhLgorCisgIDIuIEJhdHRpICBBICBlIGluc2VyaXNjaSBsZSBuZWNlc3NhcmllIGFnZ2l1bnRlLgorCisgIDMuIEFsbGEgZmluZSBkZWxsYSBhZ2dpdW50YSBwcmVtaSA8RVNDPiBwZXIgdG9ybmFyZSBpbiBtb2RhbGl04CBOb3JtYWxlLgorCisgIDQuIE11b3ZpIGlsIGN1cnNvcmUgYWxsYSBzZWNvbmRhIGxpbmVhIGluZGljYXRhIC0tLT4gZSByaXBldGkKKyAgICAgaSBwYXNzaSAyIGUgMyBwZXIgY29ycmVnZ2VyZSBxdWVzdGEgZnJhc2UuCisKKy0tLT4gQyfoIGRlbCB0ZXN0byBjaGUgbWFuY2EgZGEgcXUKKyAgICAgQyfoIGRlbCB0ZXN0byBjaGUgbWFuY2EgZGEgcXVlc3RhIGxpbmVhLgorLS0tPiBDJ+ggYW5jaGUgZGVsIHRlc3RvIGNoZSBtYQorICAgICBDJ+ggYW5jaGUgZGVsIHRlc3RvIGNoZSBtYW5jYSBxdWkuCisKKyAgNS4gUXVhbmRvIHNlaSBhIHR1byBhZ2lvIG5lbGwnYWdnaXVudGEgZGkgdGVzdG8gdmFpIGFsbGEgbGV6aW9uZSAxLjYuCisKK35+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+fgorCQkgICAgIExlemlvbmUgMS42OiBNT0RJRklDQVJFIFVOIEZJTEUKKworCisJICAgICAgKiogVXNhcmUgIDp3cSAgcGVyIHNhbHZhcmUgdW4gZmlsZSBlIHVzY2lyZS4gKioKKworICAhISBOT1RBOiBQcmltYSBkaSBlc2VndWlyZSBxdWFudG8gcmljaGllc3RvLCBsZWdnaSBsYSBMZXppb25lIHBlciBpbnRlcm8hIQorCisgIDEuIEVzY2kgZGEgVmltIGNvbWUgaGFpIGZhdHRvIG5lbGxhIGxlemlvbmUgMS4yOiAgOnEhCisKKyAgMi4gUXVhbmRvIHZlZGkgaWwgUFJPTVBUIGRlbGxhIFNoZWxsLCBiYXR0aSBpbCBjb21hbmRvOiAgdmltIHR1dG9yIDxJTlZJTz4KKyAgICAgJ3ZpbScg6CBpbCBjb21hbmRvIHBlciByaWNoaWFtYXJlIFZpbSwgJ3R1dG9yJyDoIGlsIG5vbWUgZGVsIGZpbGUgY2hlCisgICAgIGRlc2lkZXJpIG1vZGlmaWNhcmUuICBVc2EgdW4gZmlsZSBjaGUgcG9zc2EgZXNzZXJlIG1vZGlmaWNhdG8uCisKKyAgMy4gSW5zZXJpc2NpIGUgY2FuY2VsbGEgdGVzdG8gY29tZSBoYWkgaW1wYXJhdG8gbmVsbGUgbGV6aW9uaSBwcmVjZWRlbnRpLgorCisgIDQuIFNhbHZhIGlsIGZpbGUgZWQgZXNjaSBkYSBWaW0gY29uOiAgOndxICA8SU5WSU8+CisKKyAgNS4gUmllbnRyYSBpbiB2aW10dXRvciBlIHNjZW5kaSBhbCBzb21tYXJpbyBjaGUgc2VndWUuCisKKyAgNi4gRG9wbyBhdmVyIGxldHRvIGkgcGFzc2kgcXVpIHNvcHJhIGVkIGF2ZXJsaSBjb21wcmVzaTogZXNlZ3VpbGkuCisKKyAgCit+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+fn4KKwkJCSAgICAgICBMZXppb25lIDEgU09NTUFSSU8KKworCisgIDEuIElsIGN1cnNvcmUgc2kgbXVvdmUgdXNhbmRvIGkgdGFzdGkgY29uIGxlIGZyZWNjZSBvIGkgdGFzdGkgaGprbC4KKwkgaCAoc2luaXN0cmEpCWogKGdp+SkgICAgICAgayAoc3UpCSAgICBsIChkZXN0cmEpCisKKyAgMi4gUGVyIGVzZWd1aXJlIFZpbSBkYWwgUFJPTVBUIGRlbGxhIFNoZWxsIGJhdHRpOiAgdmltIE5PTUVGSUxFIDxJTlZJTz4KKworICAzLiBQZXIgdXNjaXJlIGRhIFZpbSBiYXR0aTogPEVTQz4gOnEhIDxJTlZJTz4gcGVyIHVzY2lyZSBzZW56YSBzYWx2YXJlLgorCQlvcHB1cmUgYmF0dGk6IDxFU0M+IDp3cSA8SU5WSU8+IHBlciB1c2NpcmUgc2FsdmFuZG8gbW9kaWZpY2hlLgorCisgIDQuIFBlciBjYW5jZWxsYXJlIGlsIGNhcmF0dGVyZSBzb3R0byBhbCBjdXJzb3JlIGJhdHRpOiB4CisKKyAgNS4gUGVyIGluc2VyaXJlIHRlc3RvIHN1Yml0byBwcmltYSBkZWwgY3Vyc29yZSBiYXR0aToKKwkgaSAgICAgYmF0dGkgdGVzdG8gaW5zZXJpdG8JPEVTQz4JaW5zZXJpc2NpIHByaW1hIGRlbCBjdXJzb3JlCisJIEEgICAgIGJhdHRpIHRlc3RvIGFnZ2l1bnRvCTxFU0M+CWFnZ2l1bmdpIGEgZmluZSBsaW5lYQorCitOT1RBOiBwcmVtZW5kbyA8RVNDPiByaXRvcm5lcmFpIGluIE1vZGFsaXTgIE5vcm1hbGUgbyBhbm51bGxlcmFpCisgICAgICB1biBjb21hbmRvIGVycmF0byBjaGUgcHVvaSBhdmVyIGluc2VyaXRvIGluIHBhcnRlLgorCitPcmEgY29udGludWEgY29uIGxhIExlemlvbmUgMi4KKworfn5+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+CisJCSAgIExlemlvbmUgMi4xOiBDT01BTkRJIERJIENBTkNFTExBWklPTkUKKworCisJCSoqIEJhdHRpICBkdyAgcGVyIGNhbmNlbGxhcmUgdW5hIHBhcm9sYS4gKioKKworICAxLiBQcmVtaSAgPEVTQz4gIHBlciBhY2NlcnRhcnRpIGRpIGVzc2VyZSBpbiBNb2RhbGl04CBOb3JtYWxlLgorCisgIDIuIE11b3ZpIGlsIGN1cnNvcmUgZmlubyBhbGxhIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KKworICAzLiBNdW92aSBpbCBjdXJzb3JlIGFsbCdpbml6aW8gZGkgdW5hIHBhcm9sYSBjaGUgdnVvaSBjYW5jZWxsYXJlLgorCisgIDQuIEJhdHRpICAgZHcgICBwZXIgY2FuY2VsbGFyZSBsYSBwYXJvbGEuCisKK05PVEE6IExhIGxldHRlcmEgIGQgIHNhcuAgdmlzaWJpbGUgc3VsbCd1bHRpbWEgbGluZWEgZGVsbG8gc2NoZXJtbyBtZW50cmUgbGEKKyAgICAgIGJhdHRpLiBWaW0gYXR0ZW5kZSBjaGUgdHUgYmF0dGEgIHcgLiBTZSB2ZWRpIHVuYSBsZXR0ZXJhIGRpdmVyc2EKKyAgICAgIGRhICBkICBoYWkgYmF0dHV0byBxdWFsY29zYSBkaSBzYmFnbGlhdG87IHByZW1pICA8RVNDPiAgZSByaWNvbWluY2lhLgorCistLS0+IENpIHNvbm8gbGUgYWxjdW5lIHBhcm9sZSBnaW9pYSBjaGUgbm9uIGMnZW50cmFubyBjYXJ0YSBpbiBxdWVzdGEgZnJhc2UuCisKKyAgNS4gUmlwZXRpIGkgcGFzc2kgMyBlIDQgZmluY2jpIGxhIGZyYXNlIOggY29ycmV0dGEsIHBvaSB2YWkgYWxsYSBMZXppb25lIDIuMi4KKworCit+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+fn4KKwkJTGV6aW9uZSAyLjI6IEFMVFJJIENPTUFOREkgREkgQ0FOQ0VMTEFaSU9ORQorCisKKwkgICAqKiBCYXR0aSAgZCQJcGVyIGNhbmNlbGxhcmUgZmlubyBhIGZpbmUgbGluZWEuICoqCisKKyAgMS4gUHJlbWkgIDxFU0M+ICBwZXIgYWNjZXJ0YXJ0aSBkaSBlc3NlcmUgaW4gTW9kYWxpdOAgTm9ybWFsZS4KKworICAyLiBNdW92aSBpbCBjdXJzb3JlIGZpbm8gYWxsYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCisKKyAgMy4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIGZpbmUgZGVsbGEgbGluZWEgY29ycmV0dGEgKERPUE8gaWwgcHJpbW8gLiApLgorCisgIDQuIEJhdHRpICAgIGQkICAgIHBlciBjYW5jZWxsYXJlIGZpbm8gYSBmaW5lIGxpbmVhLgorCistLS0+IFF1YWxjdW5vIGhhIGJhdHR1dG8gbGEgZmluZSBkaSBxdWVzdGEgbGluZWEgZHVlIHZvbHRlLiBsaW5lYSBkdWUgdm9sdGUuCisKKworICA1LiBWYWkgYWxsYSBMZXppb25lIDIuMyBwZXIgY2FwaXJlIGlsIGZ1bnppb25hbWVudG8gZGkgcXVlc3RvIGNvbWFuZG8uCisKKworCisKKworfn5+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+CisJCSAgICAgTGV6aW9uZSAyLjM6IE9QRVJBVE9SSSBFIE1PVklNRU5USQorCisKKyAgTW9sdGkgY29tYW5kaSBkaSBtb2RpZmljYSB0ZXN0aSBjb25zaXN0b25vIGluIHVuIG9wZXJhdG9yZSBlIHVuIG1vdmltZW50by4KKyAgSWwgZm9ybWF0byBkZWwgY29tYW5kbyBkaSBjYW5jZWxsYXppb25lIGNvbiBsJ29wZXJhdG9yZSAgZCAg6CBpbCBzZWd1ZW50ZToKKworCSBkCW1vdmltZW50bworCisgIERvdmU6CisgICAgZAkgICAgICAtIOggbCdvcGVyYXRvcmUgZGkgY2FuY2VsbGF6aW9uZQorICAgIG1vdmltZW50byAtIGluZGljYSBkb3ZlIGwnb3BlcmF0b3JlIHZhIGFwcGxpY2F0byAobGlzdGEgcXVpIHNvdHRvKS4KKworICBCcmV2ZSBsaXN0YSBkaSBtb3ZpbWVudGk6CisgICAgdyAtIGZpbm8gYSBpbml6aW8gZGVsbGEgcGFyb2xhIHNlZ3VlbnRlLCBFU0NMVVNPIGlsIHN1byBwcmltbyBjYXJhdHRlcmUuCisgICAgZSAtIGFsbGEgZmluZSBkZWxsYSBwYXJvbGEgY29ycmVudGUsIENPTVBSRVNPIGlsIHN1byB1bHRpbW8gY2FyYXR0ZXJlLgorICAgICQgLSBkYWwgY3Vyc29yZSBmaW5vIGEgZmluZSBsaW5lYSwgQ09NUFJFU08gbCd1bHRpbW8gY2FyYXR0ZXJlIGRlbGxhIGxpbmVhLgorCisgIFF1aW5kaSBzZSBiYXR0aSAgZGUgIGNhbmNlbGxpIGRhbCBjdXJzb3JlIGZpbm8gYSBmaW5lIHBhcm9sYS4KKworTk9UQTogIFNlIGJhdHRpIHNvbG8gaWwgbW92aW1lbnRvIG1lbnRyZSBzZWkgaW4gTW9kYWxpdOAgTm9ybWFsZSwgc2VuemEKKyAgICAgICBuZXNzdW4gb3BlcmF0b3JlLCBpbCBjdXJzb3JlIHNpIG11b3ZlcuAgY29tZSBzcGVjaWZpY2F0by4KKworfn5+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+CisJIExlemlvbmUgMi40OiBVU08gREkgVU4gQ09OVEFUT1JFIFBFUiBVTiBNT1ZJTUVOVE8KKworCisgICoqIFNlIGJhdHRpIHVuIG51bWVybyBwcmltYSBkaSB1biBtb3ZpbWVudG8sIGxvIHJpcGV0aSBhbHRyZXR0YW50ZSB2b2x0ZS4gKioKKworICAxLiBNdW92aSBpbCBjdXJzb3JlIGZpbm8gYWxsJ2luaXppbyBkZWxsYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCisKKyAgMi4gQmF0dGkgIDJ3ICBwZXIgc3Bvc3RhcmUgaWwgY3Vyc29yZSBkdWUgcGFyb2xlIHBp+SBhdmFudGkuCisKKyAgMy4gQmF0dGkgIDNlICBwZXIgc3Bvc3RhcmUgaWwgY3Vyc29yZSBhbGxhIGZpbmUgZGVsbGEgdGVyemEgcGFyb2xhIHNlZ3VlbnRlLgorCisgIDQuIEJhdHRpICAwICAoemVybykgcGVyIHBvc2l6aW9uYXJ0aSBhbGwnaW5pemlvIGRlbGxhIGxpbmVhLgorCisgIDUuIFJpcGV0aSBpIHBhc3NpIDIgZSAzIHVzYW5kbyBudW1lcmkgZGlmZmVyZW50aS4KKworLS0tPiBRdWVzdGEg6CBzb2xvIHVuYSBsaW5lYSBjb24gcGFyb2xlIGFsbCdpbnRlcm5vIGRlbGxhIHF1YWxlIHB1b2kgbXVvdmVydGkuCisKKyAgNi4gVmFpIGFsbGEgTGV6aW9uZSAyLjUuCisKKworCisKK35+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+fgorCUxlemlvbmUgMi41OiBVU08gREkgVU4gQ09OVEFUT1JFIFBFUiBDQU5DRUxMQVJFIERJIFBJVScKKworCisgICoqIFNlIGJhdHRpIHVuIG51bWVybyBwcmltYSBkaSB1biBtb3ZpbWVudG8sIGxvIHJpcGV0aSBhbHRyZXR0YW50ZSB2b2x0ZS4gKioKKworICBOZWxsYSBjb21iaW5hemlvbmUgZGVsbCdvcGVyYXRvcmUgY2FuY2VsbGEgZSBkaSB1biBtb3ZpbWVudG8sIGRlc2NyaXR0byBwcmltYSwKKyAgaW5zZXJpdGUgdW4gY29udGF0b3JlIHByaW1hIGRlbCBtb3ZpbWVudG8gcGVyIGNhbmNlbGxhcmUgZGkgcGn5OgorCSBkICAgbnVtZXJvICAgbW92aW1lbnRvCisKKyAgMS4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHByaW1hIHBhcm9sYSBNQUlVU0NPTEEgbmVsbGEgcmlnYSBpbmRpY2F0YSBkYSAtLS0+LgorCisgIDIuIEJhdHRpICBkMncgIHBlciBjYW5jZWxsYXJlIGxlIGR1ZSBwYXJvbGUgTUFJVVNDT0xFCisKKyAgMy4gUmlwZXRpIGkgcGFzc2kgMSBlIDIgY29uIHVuIGNvbnRhdG9yZSBkaXZlcnNvIHBlciBjYW5jZWxsYXJlIGxhIHBhcm9sZQorICAgICBNQUlVU0NPTEUgY29uc2VjdXRpdmUgY29uIHVuIHNvbG8gY29tYW5kbworCistLS0+ICBxdWVzdGEgQUJDIERFIGxpbmVhIEZHSEkgSksgTE1OIE9QIGRpIHBhcm9sZSDoIFEgUlMgVFVWIG9yYSByaXB1bGl0YS4KKworCisKKworCit+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+fn4KKwkJTGV6aW9uZSAyLjY6IExBVk9SQVJFIFNVIExJTkVFIElOVEVSRQorCisJICAgICoqIEJhdHRpICBkZCAgcGVyIGNhbmNlbGxhcmUgdW4naW50ZXJhIGxpbmVhLiAqKgorCisgIFBlciBsYSBmcmVxdWVuemEgY29uIGN1aSBjYXBpdGEgZGkgY2FuY2VsbGFyZSBsaW5lZSBpbnRlcmUsIGNoaSBoYQorICBkaXNlZ25hdG8gVmkgaGEgZGVjaXNvIGNoZSBzYXJlYmJlIHN0YXRvIHBp+SBzZW1wbGljZSBiYXR0ZXJlCisgIGR1ZSBkIGNvbnNlY3V0aXZlIHBlciBjYW5jZWxsYXJlIHVuYSBsaW5lYS4KKworICAxLiBNdW92aSBpbCBjdXJzb3JlIGFsbGEgbGluZWEgMikgbmVsbGEgZnJhc2UgcXVpIHNvdHRvLgorICAyLiBCYXR0aSAgZGQgIHBlciBjYW5jZWxsYXJlIGxhIGxpbmVhLgorICAzLiBPcmEgc3Bvc3RhdGkgYWxsYSBsaW5lYSA0KS4KKyAgNC4gQmF0dGkgICAyZGQgICBwZXIgY2FuY2VsbGFyZSBkdWUgbGluZWUuCisKKy0tLT4gIDEpICBMZSByb3NlIHNvbm8gcm9zc2UsCistLS0+ICAyKSAgSWwgZmFuZ28g6CBkaXZlcnRlbnRlLAorLS0tPiAgMykgIExlIHZpb2xlIHNvbm8gYmx1LAorLS0tPiAgNCkgIElvIGhvIHVuJ2F1dG9tb2JpbGUsCistLS0+ICA1KSAgR2xpIG9yb2xvZ2kgc2VnbmFubyBpbCB0ZW1wbywKKy0tLT4gIDYpICBMbyB6dWNjaGVybyDoIGRvbGNlLAorLS0tPiAgNykgIEUgY29z7CBzZWkgYW5jaGUgdHUuCisKKworfn5+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+CisJICAgICAgTGV6aW9uZSAyLjc6IElMIENPTUFORE8gVU5ETyBbQU5OVUxMQV0KKworICAgICoqICBQcmVtaSAgdSAgcGVyIGFubnVsbGFyZSBnbGkgdWx0aW1pIGNvbWFuZGkgZXNlZ3VpdGkuICAqKgorICAgICoqIFByZW1pICBVICBwZXIgYW5udWxsYXJlIGxlIG1vZGlmaWNoZSBhbGwndWx0aW1hIGxpbmVhLiAqKgorCisgIDEuIE11b3ZpIGlsIGN1cnNvcmUgZmlubyBhbGxhIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KKyAgICAgZSBwb3NpemlvbmF0aSBzdWwgcHJpbW8gZXJyb3JlLgorICAyLiBCYXR0aSAgeCAgcGVyIGNhbmNlbGxhcmUgaWwgcHJpbW8gY2FyYXR0ZXJlIHNiYWdsaWF0by4KKyAgMy4gQWRlc3NvIGJhdHRpICB1ICBwZXIgYW5udWxsYXJlIGwndWx0aW1vIGNvbWFuZG8gZXNlZ3VpdG8uCisgIDQuIE9yYSBpbnZlY2UsIGNvcnJlZ2dpIHR1dHRpIGdsaSBlcnJvcmkgc3VsbGEgbGluZWEgdXNhbmRvIGlsIGNvbWFuZG8gIHggLgorICA1LiBBZGVzc28gYmF0dGkgdW5hIFUgTWFpdXNjb2xhIHBlciByaXBvcnRhcmUgbGEgbGluZWEgYWwgc3VvIHN0YXRvIG9yaWdpbmFsZS4KKyAgNi4gQWRlc3NvIGJhdHRpICB1ICBwafkgdm9sdGUgcGVyIGFubnVsbGFyZSBsYSAgVSAgZSBpIGNvbWFuZGkgcHJlY2VkZW50aS4KKyAgNy4gQWRlc3NvIGJhdHRpIHBp+SB2b2x0ZSBDVFJMLXIgKHRpZW5pIGlsIHRhc3RvIENUUkwgc2NoaWFjY2lhdG8KKyAgICAgbWVudHJlIGJhdHRpIHIpIHBlciByaWVzZWd1aXJlIGkgY29tYW5kaSAoYW5udWxsYXJlIGwnYW5udWxsYW1lbnRvKS4KKworLS0tPiBDb3JyZWVnZ2kgZ2xpIGVycm9yaSBzc3UgcXV1ZXN0YSBsaW5lYSBlIHJpaW1waWF6emFsaSBjb29uICJ1bmRvIi4KKworICA4LiBRdWVzdGkgY29tYW5kaSBzb25vIG1vbHRvIHV0aWxpLiBPcmEgc3Bvc3RhdGkgYWwgU29tbWFyaW8gZGVsbGEgTGV6aW9uZSAyLgorCisKKworCit+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+fn4KKwkJCSAgICAgICBMZXppb25lIDIgU09NTUFSSU8KKworCisgIDEuIFBlciBjYW5jZWxsYXJlIGRhbCBjdXJzb3JlIGZpbm8gYWxsYSBwYXJvbGEgc2VndWVudGUgYmF0dGk6ICAgICAgZHcKKyAgMi4gUGVyIGNhbmNlbGxhcmUgZGFsIGN1cnNvcmUgZmlubyBhbGxhIGZpbmUgZGVsbGEgbGluZWEgYmF0dGk6ICAgICBkJAorICAzLiBQZXIgY2FuY2VsbGFyZSB1bidpbnRlcmEgbGluZWEgYmF0dGk6ICAgIGRkCisgIDQuIFBlciBlc2VndWlyZSBwafkgdm9sdGUgdW4gbW92aW1lbnRvLCBtZXR0aWNpIGRhdmFudGkgdW4gbnVtZXJvOiAgMncKKyAgNS4gSWwgZm9ybWF0byBwZXIgdW4gY29tYW5kbyBkaSBtb2RpZmljYSDoOgorCisgICAgICAgb3BlcmF0b3JlICAgW251bWVyb10gICBtb3ZpbWVudG8KKyAgICAgZG92ZToKKyAgICAgICBvcGVyYXRvcmUgLSBpbmRpY2EgaWwgZGEgZmFyc2ksIGFkIGVzLiAgZCAgcGVyIFtkZWxldGVdIGNhbmNlbGxhcmUKKyAgICAgICBbbnVtZXJvXSAgLSBjb250YXRvcmUgZmFjb2x0YXRpdm8gZGkgcmlwZXRpemlvbmUgZGVsIG1vdmltZW50bworICAgICAgIG1vdmltZW50byAtIHNwb3N0YW1lbnRvIG5lbCB0ZXN0byBzdSBjdWkgb3BlcmFyZSwgYWQgZXMuCisgICAgICAgCQkgICB3IFt3b3JkXSBwYXJvbGEsICQgKGZpbm8gYSBmaW5lIGxpbmVhKSwgZXRjLgorCisgIDYuIFBlciBhbmRhcmUgYSBpbml6aW8gbGluZWEgdXNhdGUgdW5vIHplcm86CTAKKyAgNy4gUGVyIGFubnVsbGFyZSBpIGNvbWFuZGkgcHJlY2VkZW50aSwgYmF0dGk6CSAJICAgIHUgKHUgbWludXNjb2xhKQorICAgICBQZXIgYW5udWxsYXJlIHR1dHRlIGxlIG1vZGlmaWNoZSBhIHVuYSBsaW5lYSBiYXR0aTogICAgVSAoVSBtYWl1c2NvbGEpCisgICAgIFBlciBhbm51bGxhcmUgbCdhbm51bGxhbWVudG8gWyJyZWRvIl0gIAkgIGJhdHRpOiAgICBDVFJMLXIKKworCit+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+fn4KKwkJIExlemlvbmUgMy4xOiBJTCBDT01BTkRPIFBVVCBbTUVUVEksIFBPTkldCisKKworICAgKiogQmF0dGkgIHAgIHBlciBwb3JyZSBbcHV0XSB0ZXN0byAoY2FuY2VsbGF0byBwcmltYSkgZG9wbyBpbCBjdXJzb3JlLiAqKgorCisgIDEuIE11b3ZpIGlsIGN1cnNvcmUgYWxsYSBwcmltYSBsaW5lYSBpbmRpY2F0YSBjb24gLS0tPiBxdWkgaW4gYmFzc28uCisKKyAgMi4gQmF0dGkgIGRkICBwZXIgY2FuY2VsbGFyZSBsYSBsaW5lYSBlIGRlcG9zaXRhcmxhIGluIHVuIHJlZ2lzdHJvIGRpIFZpbS4KKworICAzLiBNdW92aSBpbCBjdXJzb3JlIGZpbm8gYWxsYSBsaW5lYSBjKSBTT1BSQSBxdWVsbGEgZG92ZSBhbmRyZWJiZSBtZXNzYQorICAgICBsYSBsaW5lYSBhcHBlbmEgY2FuY2VsbGF0YS4KKworICA0LiBCYXR0aSAgcCAgcGVyIG1ldHRlcmUgbGEgbGluZWEgc290dG8gaWwgY3Vyc29yZS4KKworICA1LiBSaXBldGkgaSBwYXNzaSBkYSAyIGEgNCBwZXIgbWV0dGVyZSB0dXR0ZSBsZSBsaW5lZSBuZWwgZ2l1c3RvIG9yZGluZS4KKworLS0tPiBkKSAgUHVvaSBpbXBhcmFybGEgdHU/CistLS0+IGIpICBMZSB2aW9sZSBzb25vIGJsdSwKKy0tLT4gYykgIExhIHNhZ2dlenphIHNpIGltcGFyYSwKKy0tLT4gYSkgIExlIHJvc2Ugc29ubyByb3NzZSwKKworCit+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+fn4KKwkgICAgICBMZXppb25lIDMuMjogSUwgQ09NQU5ETyBSRVBMQUNFIFtSSU1QSUFaWkFSRV0KKworCisgICoqIEJhdHRpICByeCAgcGVyIHJpbXBpYXp6YXJlIGlsIGNhcmF0dGVyZSBzb3R0byBhbCBjdXJzb3JlIGNvbiB4IC4gKioKKworICAxLiBNdW92aSBpbCBjdXJzb3JlIGFsbGEgcHJpbWEgbGluZWEgcXVpIHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LgorCisgIDIuIE11b3ZpIGlsIGN1cnNvcmUgZmlubyBhIHBvc2l6aW9uYXJsbyBzb3ByYSBpbCBwcmltbyBlcnJvcmUuCisKKyAgMy4gQmF0dGkgICByCWUgcG9pIGlsIGNhcmF0dGVyZSBjaGUgZG92cmViYmUgc3RhcmUgcXVpLgorCisgIDQuIFJpcGV0aSBpIHBhc3NpIDIgZSAzIGZpbmNo6SBsYSBwcmltYSBsaW5lYSDoIHVndWFsZSBhbGxhIHNlY29uZGEuCisKKy0tLT4gIEFtbWF0dGVuZG8gcXVldHRhIGxpbmNlLCBxdWFsY3VubyBobyBwcmVkYXRvIGFsY3VuaSB0b3N0aSBzYmFsbGlhdGkhCistLS0+ICBJbW1ldHRlbmRvIHF1ZXN0YSBsaW5lYSwgcXVhbGN1bm8gaGEgcHJlbXV0byBhbGN1bmkgdGFzdGkgc2JhZ2xpYXRpIQorCisgIDUuIE9yYSBwYXNzYSBhbGxhIExlemlvbmUgMy4yLgorCitOT1RBOiBSaWNvcmRhdGkgY2hlIGRvdnJlc3RpIGltcGFyYXJlIGNvbiBsYSBwcmF0aWNhLCBub24gc29sbyBsZWdnZW5kby4KKworCisKK35+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+fgorCSAgICAgTGV6aW9uZSAzLjM6IEwnT1BFUkFUT1JFIENIQU5HRSBbQ0FNQklBXQorCisKKyAgICAgKiogUGVyIGNhbWJpYXJlIGZpbm8gYWxsYSBmaW5lIGRpIHVuYSBwYXJvbGEsIGJhdHRpICBjZSAuICoqCisKKyAgMS4gTXVvdmkgaWwgY3Vyc29yZSBhbGxhIHByaW1hIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KKworICAyLiBQb3NpemlvbmEgaWwgY3Vyc29yZSBhbGxhICB1ICBpbiBsdWJ3LgorCisgIDMuIEJhdHRpICBjZSAgZSBsYSBwYXJvbGEgY29ycmV0dGEgKGluIHF1ZXN0byBjYXNvLCBiYXR0aSAgaW5lYSAgICApLgorCisgIDQuIFByZW1pIDxFU0M+IGUgdmFpIHN1bCBwcm9zc2ltbyBjYXJhdHRlcmUgZGEgbW9kaWZpY2FyZS4KKworICA1LiBSaXBldGkgaSBwYXNzaSAzIGUgNCBmaW5jaOkgbGEgcHJpbWEgZnJhc2Ug6CB1Z3VhbGUgYWxsYSBzZWNvbmRhLgorCistLS0+IFF1ZXN0YSBsdWJ3IGhhIGFsY3VuZSBwcHRmZCBkYSBhc2RlcnQgdXNnZmsgbCdvcGVyYXRvcmUgQ0hBTkdFLgorLS0tPiBRdWVzdGEgbGluZWEgaGEgYWxjdW5lIHBhcm9sZSBkYSBjYW1iaWFyZSB1c2FuZG8gbCdvcGVyYXRvcmUgQ0hBTkdFLgorCitOb3RhIGNoZSAgY2UgIGNhbmNlbGxhIGxhIHBhcm9sYSwgZSB0aSBtZXR0ZSBhbmNoZSBpbiBNb2RhbGl04CBJbnNlcmltZW50bworICAgIFtJbnNlcnQgTW9kZV0KKworCit+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+fn4KKwkJICBMZXppb25lIDMuNDogQUxUUkkgQ0FNQklBTUVOVEkgVVNBTkRPIGMKKworKiogTCdvcGVyYXRvcmUgYyBbQ0hBTkdFXSBhZ2lzY2Ugc3VnbGkgc3Rlc3NpIG1vdmltZW50aSBkaSAgZCAgW0RFTEVURV0gKioKKworICAxLiBMJ29wZXJhdG9yZSBDSEFOR0Ugc2kgY29tcG9ydGEgY29tZSBERUxFVEUuICBJbCBmb3JtYXRvIOg6CisKKyAgICAgICBjICAgW251bWVyb10gICBtb3ZpbWVudG8KKworICAyLiBJIG1vdmltZW50aSBzb25vIGdsaSBzdGVzc2ksCisgICAgIGFkIGVzLiB3ICh3b3JkLCBwYXJvbGEpLCAkIChmaW5lIGxpbmVhKSwgZXRjLgorCisgIDMuIE11b3ZpIGlsIGN1cnNvcmUgYWxsYSBwcmltYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCisKKyAgNC4gUG9zaXppb25hIGlsIGN1cnNvcmUgYWwgcHJpbW8gZXJyb3JlLgorCisgIDUuIEJhdHRpICBjJCAgZSBpbnNlcmlzY2kgcmVzdG8gZGVsbGEgbGluZWEgdXRpbGl6emFuZG8gY29tZSBtb2RlbGxvIGxhCisgICAgIGxpbmVhIHNlZ3VlbnRlLCBlIHF1YW5kbyBoYWkgZmluaXRvIHByZW1pIDxFU0M+CisKKy0tLT4gTGEgZmluZSBkaSBxdWVzdGEgbGluZWEgZGV2ZSBlc3NlcmUgYWl1dGF0YSBhIGRpdmVuaXJlIGNvbWUgbGEgc2VndWVudGUuCistLS0+IExhIGZpbmUgZGkgcXVlc3RhIGxpbmVhIGRldmUgZXNzZXJlIGNvcnJldHRhIHVzYW5kbyBpbCBjb21hbmRvICBjJCAgLgorCitOT1RBOiAgUHVvaSB1c2FyZSBpbCB0YXN0byBCYWNrc3BhY2Ugc2UgZGV2aSBjb3JyZWdnZXJlIGVycm9yaSBkaSBiYXR0aXR1cmEuCit+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+fn4KKwkJCSAgICAgICBMZXppb25lIDMgU09NTUFSSU8KKworCisgIDEuIFBlciByZWluc2VyaXJlIGRlbCB0ZXN0byBhcHBlbmEgY2FuY2VsbGF0bywgYmF0dGkgICBwICAgLiAgUXVlc3RvCisgICAgIGluc2VyaXNjZSBbcG9uZV0gaWwgdGVzdG8gY2FuY2VsbGF0byBET1BPIGlsIGN1cnNvcmUgKHNlIGVyYSBzdGF0YSB0b2x0YQorICAgICB1bmEgbGluZWEgaW50ZXJhLCBxdWVzdGEgdmVycuAgbWVzc2EgbmVsbGEgbGluZWEgU09UVE8gaWwgY3Vyc29yZSkuCisKKyAgMi4gUGVyIHJpbXBpYXp6YXJlIGlsIGNhcmF0dGVyZSBzb3R0byBpbCBjdXJzb3JlLCBiYXR0aSAgIHIgICBlIHBvaSBpbAorICAgICBjYXJhdHRlcmUgY2hlIHZ1b2kgc29zdGl0dWlyZS4KKworICAzLiBMJ29wZXJhdG9yZSBjaGFuZ2UgdGkgcGVybWV0dGUgZGkgY2FtYmlhcmUgZGFsIGN1cnNvcmUgZmlubyBhIGRvdmUKKyAgICAgYXJyaXZhIGlsIG1vdmltZW50by4gIEFkIGVzLiBCYXR0aSAgY2UgIHBlciBjYW1iaWFyZSBkYWwgY3Vyc29yZQorICAgICBmaW5vIGFsbGEgZmluZSBkZWxsYSBwYXJvbGEsICBjJCAgcGVyIGNhbWJpYXJlIGZpbm8gYSBmaW5lIGxpbmVhLgorCisgIDQuIElsIGZvcm1hdG8gZGkgIGNoYW5nZSAg6DoKKworICAgICAgIGMgICBbbnVtZXJvXSAgIG1vdmltZW50bworCitPcmEgdmFpIGFsbGEgcHJvc3NpbWEgTGV6aW9uZS4KKworCisKK35+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+fgorCQkgICAgIExlemlvbmUgNC4xOiBQT1NJWklPTkFNRU5UTyBFIFNJVFVBWklPTkUgRklMRQorCisgICoqIEJhdHRpIENUUkwtRyBwZXIgdmVkZXJlIGEgY2hlIHB1bnRvIHNlaSBuZWwgZmlsZSBlIGxhIHNpdHVhemlvbmUgKioKKyAgKiogICAgIGRlbCBmaWxlLiAgQmF0dGkgRyAgcGVyIHJhZ2dpdW5nZXJlIHVuYSBsaW5lYSBuZWwgZmlsZS4gICAgICAqKgorCisgIE5PVEE6IExlZ2dpIGwnaW50ZXJhIExlemlvbmUgcHJpbWEgZGkgZXNlZ3VpcmUgdW4gcXVhbHNpYXNpIHBhc3NvISEKKworICAxLiBUaWVuaSBwcmVtdXRvIGlsIHRhc3RvIENUUkwgZSBiYXR0aSAgZyAgLiAgT3NzaWEgYmF0dGkgQ1RSTC1HLgorICAgICBVbiBtZXNzYWdnaW8gYXBwYXJpcuAgaW4gZm9uZG8gYWxsYSBwYWdpbmEgY29uIGlsIE5PTUUgRklMRSBlIGxhCisgICAgIHBvc2l6aW9uZSBuZWwgZmlsZS4gIFJpY29yZGF0aSBpbCBudW1lcm8gZGVsbGEgbGluZWEgcGVyIGlsIFBhc3NvIDMuCisKK05PVEE6IExhIHBvc2l6aW9uZSBkZWwgY3Vyc29yZSBzaSB2ZWRlIG5lbGwnYW5nb2xvIGluIGJhc3NvIGEgZGVzdHJhIGRlbGxvCisgICAgICBzY2hlcm1vLCBzZSDoIGltcG9zdGF0YSBsJ29wemlvbmUgJ3J1bGVyJyAocmlnaGVsbG8sIHZlZGkgOmhlbHAgcnVsZXIpLgorCisgIDIuIFByZW1pICBHICBbRyBNYWl1c2NvbG9dIHBlciBwb3NpemlvbmFydGkgaW4gZm9uZG8gYWwgZmlsZS4KKyAgICAgQmF0dGkgZ2cgIHBlciBwb3NpemlvbmFydGkgaW4gY2ltYSBhbCBmaWxlLgorCisgIDMuIEJhdHRpIGlsIG51bWVybyBkZWxsYSBsaW5lYSBpbiBjdWkgdGkgdHJvdmF2aSBlIHBvaSAgRyAgLiAgUXVlc3RvIHRpCisgICAgIHJpcG9ydGVy4CBmaW5vIGFsbGEgbGluZWEgaW4gY3VpIHRpIHRyb3ZhdmkgcXVhbmRvIGF2ZXZpIGJhdHR1dG8gQ1RSTC1nLgorCisgIDQuIFNlIHRpIHNlbnRpIHNpY3VybyBuZWwgZmFybG8sIGVzZWd1aSBpIHBhc3NpIGRhIDEgYSAzLgorCit+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+fn4KKwkJTGV6aW9uZSA0LjI6IElMIENPTUFORE8gU0VBUkNIIFtSSUNFUkNBXQorCisgICAgICoqIEJhdHRpICAvICBzZWd1aXRvIGRhIHVuYSBmcmFzZSBwZXIgcmljZXJjYXJlIHF1ZWxsYSBmcmFzZS4gKioKKworICAxLiBpbiBNb2RhbGl04CBOb3JtYWxlIGJhdHRpIGlsIGNhcmF0dGVyZSAgLyAgLiBOb3RhIGNoZSBsYSAiLyIgZSBpbCBjdXJzb3JlCisgICAgIHNvbm8gdmlzaWJpbGkgaW4gZm9uZG8gZGVsbG8gc2NoZXJtbyBjb21lIHF1YW5kbyBzaSB1c2EgaWwgY29tYW5kbyAgOiAuCisKKyAgMi4gQWRlc3NvIGJhdHRpICdlcnJyb29yZScgPElOVklPPi4gUXVlc3RhIOggbGEgcGFyb2xhIGNoZSB2dW9pIHJpY2VyY2FyZS4KKworICAzLiBQZXIgcmljZXJjYXJlIGFuY29yYSBsYSBzdGVzc2EgZnJhc2UsIGJhdHRpIHNvbHRhbnRvICAgICAgIG4gIC4KKyAgICAgUGVyIHJpY2VyY2FyZSBsYSBzdGVzc2EgZnJhc2UgaW4gZGlyZXppb25lIG9wcG9zdGEsIGJhdHRpICBOICAuCisKKyAgNC4gUGVyIHJpY2VyY2FyZSB1bmEgZnJhc2UgbmVsbGEgZGlyZXppb25lIG9wcG9zdGEsIHVzYSAgPyAgYWwgcG9zdG8gZGkgIC8gIC4KKworICA1LiBQZXIgdG9ybmFyZSBkb3ZlIGVyaSBwcmltYSBuZWwgZmlsZSBwcmVtaSAgQ1RSTC1PICAodGllbmkgaWwgdGFzdG8gQ1RSTAorICAgICBzY2hpYWNjaWF0byBtZW50cmUgcHJlbWkgbGEgbGV0dGVyYSBvKS4gIFJpcGV0aSAgQ1RSTC1PICBwZXIgYW5kYXJlIGFuY29yYQorICAgICBpbmRpZXRyby4gUHVvaSB1c2FyZSAgQ1RSTC1JICBwZXIgdG9ybmFyZSBpbiBhdmFudGkuCisKK05PVEE6ICJlcnJyb29yZSIgbm9uIOggaWwgbW9kbyBnaXVzdG8gZGkgZGlnaXRhcmUgZXJyb3JlOyBlcnJyb29yZSDoIHVuIGVycm9yZS4KK05PVEE6IFF1YW5kbyBsYSByaWNlcmNhIGFycml2YSBhIGZpbmUgZmlsZSwgcmljb21pbmNpYSBkYWxsJ2luaXppbyBkZWwgZmlsZSwKKyAgICAgIGEgbWVubyBjaGUgbCdvcHppb25lICd3cmFwc2Nhbicgc2lhIHN0YXRhIGRpc2F0dGl2YXRhLgorCit+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+fn4KKwkgICAgICBMZXppb25lIDQuMzogUklDRVJDQSBESSBQQVJFTlRFU0kgQ09SUklTUE9OREVOVEkKKworCisJICoqIEJhdHRpICAlICBwZXIgdHJvdmFyZSB1bmEgICksXSwgbyB9ICBjb3JyaXNwb25kZW50ZS4gKioKKworICAxLiBQb3NpemlvbmEgaWwgY3Vyc29yZSBzdSB1bmEgKCwgWywgbyB7IG5lbGxhIGxpbmVhIHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LgorCisgIDIuIEFkZXNzbyBiYXR0aSBpbCBjYXJhdHRlcmUgICAlICAuCisKKyAgMy4gSWwgY3Vyc29yZSBzaSBzcG9zdGVy4CBzdWxsYSBwYXJlbnRlc2kgY29ycmlzcG9uZGVudGUuCisKKyAgNC4gQmF0dGkgICUgIHBlciBtdW92ZXJlIGlsIGN1cnNvcmUgYWxsJ2FsdHJhIHBhcmVudGVzaSBjb3JyaXNwb25kZW50ZS4KKworLS0tPiBRdWVzdGEgKCDoIHVuYSBsaW5lYSBkaSB0ZXN0IGNvbiAoLCBbIF0gZSB7IH0gYWwgc3VvIGludGVybm8uICkpCisKKworTk9UQTogUXVlc3RvIOggbW9sdG8gdXRpbGUgbmVsICJkZWJ1ZyIgZGkgdW4gcHJvZ3JhbW1hIGNvbiBwYXJlbnRlc2kgZXJyYXRlIQorCisKKworCisKK35+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+fgorCSAgICBMZXppb25lIDQuNDogTCdPUEVSQVRPUkUgU09TVElUVVpJT05FIChTVUJTVElUVVRFKQorCisgICoqIEJhdHRpICA6cy92ZWNjaGlvL251b3ZvL2cgIHBlciBzb3N0aXR1aXJlICdudW92bycgYSAndmVjY2hpbycuICoqCisKKyAgMS4gTXVvdmkgaWwgY3Vyc29yZSBmaW5vIGFsbGEgbGluZWEgcXVpIHNvdHRvLCBpbmRpY2F0YSBkYSAtLS0+LgorCisgIDIuIEJhdHRpICA6cy9sbGEvbGEgPElOVklPPiAuICBOb3RhIGNoZSBxdWVzdG8gY29tYW5kbyBjYW1iaWEgc29sbworICAgICBMQSBQUklNQSBvY2NvcnJlbnphIGRpICJsbGEiIHN1bGxhIGxpbmVhLgorCisgIDMuIEFkZXNzbyBiYXR0aSAgOnMvbGxhL2xhL2cgLiBBZ2dpdW5nZW5kbyBsYSBmbGFnICBnICBzaSBjaGllZGUgZGkKKyAgICAgc29zdGl0dWlyZSAiZ2xvYmFsbWVudGUiIHN1bGxhIGxpbmVhLCBvc3NpYSB0dXR0ZSBsZSBvY2NvcnJlbnplCisgICAgIGRpICJsbGEiIHN1bGxhIGxpbmVhLgorCistLS0+IGxsYSBzdGFnaW9uZSBtaWdsaW9yZSBwZXIgbGxhIGZpb3JpdHVyYSDoIGxsYSBwcmltYXZlcmEuCisKKyAgNC4gUGVyIGNhbWJpYXJlIG9nbmkgcmljb3JyZW56YSBkaSB1bmEgc3RyaW5nYSBkaSBjYXJhdHRlcmkgdHJhIGR1ZSBsaW5lZSwKKyAgICAgYmF0dGkgOiMsI3MvdmVjY2hpby9udW92by9nICBkb3ZlICMsIyBzb25vIGkgbnVtZXJpIGNoZSBkZWxpbWl0YW5vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWwgZ3J1cHBvIGRpIGxpbmVlIGluIGN1aSBzaSB2dW9sZSBzb3N0aXR1aXJlLgorICAgICBCYXR0aSA6JXMvdmVjY2hpby9udW92by9nICAgIHBlciBjYW1iaWFyZSBvZ25pIG9jY29ycmVuemEgbmVsbCdpbnRlcm8gZmlsZS4KKyAgICAgQmF0dGkgOiVzL3ZlY2NoaW8vbnVvdm8vZ2MgICBwZXIgdHJvdmFyZSBvZ25pIG9jY29ycmVuemEgbmVsbCdpbnRlcm8gZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpY2V2ZW5kbyBwZXIgb2dudW5hIHVuYSByaWNoaWVzdGEgc2UKKwkJCQkgIGVmZmV0dHVhcmUgbyBtZW5vIGxhIHNvc3RpdHV6aW9uZS4KK35+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+fgorCQkJICAgICAgIExlemlvbmUgNCBTT01NQVJJTworCisKKzEuIENUUkwtRyAgdmlzdWFsaXp6YSBhIGNoZSBwdW50byBzZWkgbmVsIGZpbGUgZSBsYSBzaXR1YXppb25lIGRlbCBmaWxlLgorICAgICAgICAgIEcgIFtHIE1haXVzY29sb10gdGkgcG9ydGEgYWxsJ3VsdGltYSBsaW5lYSBkZWwgZmlsZS4KKyAgIG51bWVybyBHICB0aSBwb3J0YSBhbGxhIGxpbmVhIGNvbiBxdWVsIG51bWVyby4KKyAgICAgICAgIGdnICB0aSBwb3J0YSBhbGxhIHByaW1hIGxpbmVhIGRlbCBmaWxlLgorCisyLiBCYXR0ZW5kbyAgLyAgc2VndWl0byBkYSB1bmEgZnJhc2UgcmljZXJjYSBJTiBBVkFOVEkgcXVlbGxhIGZyYXNlLgorICAgQmF0dGVuZG8gID8gIHNlZ3VpdG8gZGEgdW5hIGZyYXNlIHJpY2VyY2EgQUxMJ0lORElFVFJPIHF1ZWxsYSBmcmFzZS4KKyAgIERPUE8gdW5hIHJpY2VyY2EgYmF0dGkgICAgbiAgIHBlciB0cm92YXJlIGxhIHByb3NzaW1hIG9jY29ycmVuemEgbmVsbGEKKyAgIHN0ZXNzYSBkaXJlemlvbmUsIG9wcHVyZSAgTiAgIHBlciBjZXJjYXJlIGluIGRpcmV6aW9uZSBvcHBvc3RhLgorICAgQ1RSTC1PIHRpIHBvcnRhIGFsbGEgcG9zaXppb25lIHByZWNlZGVudGUsIENUUkwtSSBhIHF1ZWxsYSBwafkgbnVvdmEuCisKKzMuIEJhdHRlbmRvICAlICBtZW50cmUgaWwgY3Vyc29yZSBzaSB0cm92YSBzdSAgKCwpLFssXSx7LCBvcHB1cmUgfQorICAgdGkgcG9zaXppb25pIHN1bGxhIGNvcnJpc3BvbmRlbnRlIHBhcmVudGVzaS4KKworNC4gUGVyIHNvc3RpdHVpcmUgIm51b3ZvIiBhbCBwcmltbyAidmVjY2hpbyIgaW4gMSBsaW5lYSBiYXR0aSA6cy92ZWNjaGlvL251b3ZvCisgICBQZXIgc29zdGl0dWlyZSAibnVvdm8iIGFkIG9nbmkgICJ2ZWNjaGlvIiBpbiAxIGxpbmVhIGJhdHRpIDpzL3ZlY2NoaW8vbnVvdm8vZworICAgUGVyIHNvc3RpdHVpcmUgZnJhc2kgdHJhIDIgbnVtZXJpIGRpIGxpbmVhIFsjXSAgYmF0dGkgICA6Iywjcy92ZWNjaGlvL251b3ZvL2cKKyAgIFBlciBzb3N0aXR1aXJlIHR1dHRlIGxlIG9jY29ycmVuemUgbmVsIGZpbGUgYmF0dGkJICAgICA6JXMvdmVjY2hpby9udW92by9nCisgICBQZXIgY2hpZWRlcmUgY29uZmVybWEgb2duaSB2b2x0YSBhZ2dpdW5naSAnYycJICAgIDolcy92ZWNjaGlvL251b3ZvL2djCit+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+fn4KKwkgICAgICBMZXppb25lIDUuMTogQ09NRSBFU0VHVUlSRSBVTiBDT01BTkRPIEVTVEVSTk8KKworCisgICoqIEJhdHRpICA6ISAgc2VndWl0byBkYSB1biBjb21hbmRvIGVzdGVybm8gcGVyIGVzZWd1aXJlIHF1ZWwgY29tYW5kby4gKioKKworICAxLiBCYXR0aSBpbCBjb21hbmRvICAgOiAgIHBlciBwb3NpemlvbmFyZSBpbCBjdXJzb3JlIGluIGZvbmRvIGFsbG8gc2NoZXJtby4KKyAgICAgQ2nyIHRpIHBlcm1ldHRlIGRpIGltbWV0dGVyZSB1biBjb21hbmRvIGRhbGxhIGxpbmVhIGNvbWFuZGkuCisKKyAgMi4gQWRlc3NvIGJhdHRpIGlsIGNhcmF0dGVyZSAgISAgKHB1bnRvIGVzY2xhbWF0aXZvKS4gIENp8iB0aSBwZXJtZXR0ZSBkaQorICAgICBlc2VndWlyZSBxdWFsc2lhc2kgY29tYW5kbyBlc3Rlcm5vIHNpIHBvc3NhIGVzZWd1aXJlIG5lbGxhICJzaGVsbCIuCisKKyAgMy4gQWQgZXNlbXBpbyBiYXR0aSAgIGxzICAgZG9wbyBpbCAhIGUgcG9pIHByZW1pIDxJTlZJTz4uICBRdWVzdG8KKyAgICAgdmlzdWFsaXp6YSB1bmEgbGlzdGEgZGVsbGEgdHVhIGRpcmVjdG9yeSwgcHJvcHJpbyBjb21lIHNlIGZvc3NpIGluIHVuYQorICAgICAic2hlbGwiLiBVc2EgICA6IWRpciAgc2UgIGxzICBub24gZnVuemlvbmEuICAgW1VuaXg6IGxzICBNUy1ET1M6IGRpcl0KKworTk9UQTogIEUnIHBvc3NpYmlsZSBpbiBxdWVzdG8gbW9kbyBlc2VndWlyZSB1biBjb21hbmRvIGEgcGlhY2VyZSwgc3BlY2lmaWNhbmRvCisgICAgICAgYW5jaGUgZGVpIHBhcmFtZXRyaSBwZXIgaSBjb21hbmRpIHN0ZXNzaS4KKworTk9UQTogIFR1dHRpIGkgY29tYW5kaSAgOiAgZGV2b25vIGVzc2VyZSB0ZXJtaW5hdGkgcHJlbWVuZG8gPElOVklPPgorICAgICAgIERhIHF1aSBpbiBhdmFudGkgbm9uIGxvIHJpcGV0ZXJlbW8gb2duaSB2b2x0YS4KKworCit+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+fn4KKwkgICAgICBMZXppb25lIDUuMjogQU5DT1JBIFNVTExBIFNDUklUVFVSQSBERUkgRklMRQorCisKKyAgICoqIFBlciBzYWx2YXJlIGxlIG1vZGlmaWNoZSBhcHBvcnRhdGUgYSB1biB0ZXN0byBiYXR0aSA6dyBOT01FRklMRS4gKioKKworICAxLiBCYXR0aSAgOiFkaXIgIG9yICA6IWxzICBwZXIgcHJvY3VyYXJ0aSB1bmEgbGlzdGEgZGVsbGEgdHVhIGRpcmVjdG9yeS4KKyAgICAgR2ngIHNhaSBjaGUgZGV2aSBwcmVtZXJlIDxJTlZJTz4gZG9wbyBhdmVyIHNjcml0dG8gaWwgY29tYW5kby4KKworICAyLiBTY2VnbGkgdW4gTk9NRUZJTEUgY2hlIGFuY29yYSBub24gZXNpc3RhLCBhZCBlcy4gVEVTVCAgIC4KKworICAzLiBBZGVzc28gYmF0dGk6CSA6dyBURVNUICAgKGRvdmUgVEVTVCDoIGlsIE5PTUVGSUxFIGNoZSBoYWkgc2NlbHRvKS4KKworICA0LiBRdWVzdG8gc2FsdmEgbCdpbnRlcm8gZmlsZSAoInR1dG9yLml0IikgIGNvbiBpbCBub21lIGRpIFRFU1QuCisgICAgIFBlciB2ZXJpZmljYSBiYXR0aSBhbmNvcmEgIDohZGlyICBvICA6IWxzICBwZXIgbGlzdGFyZSBsYSB0dWEgZGlyZWN0b3J5LgorCitOT1RBOiBTZSBlc2NpIGRhIFZpbSBlIHJpZXNlZ3VpIFZpbSBiYXR0ZW5kbyAgdmltIFRFU1QgLCBpbCBmaWxlIGFwZXJ0bworICAgICAgc2Fy4CB1bmEgY29waWEgZXNhdHRhIGRpICJ0dXRvci5pdCIgYWwgbW9tZW50byBkZWwgc2FsdmF0YWdnaW8uCisKKyAgNS4gT3JhIGNhbmNlbGxhIGlsIGZpbGUgYmF0dGVuZG8gKE1SLURPUyk6ICAgOiFkZWwgVEVTVAorCQkJCSBvIChVbml4KTogICAgIDohcm0gVEVTVAorCisKK35+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+fgorCQlMZXppb25lIDUuMzogU0VMRVpJT05BUkUgSUwgVEVTVE8gREEgU0NSSVZFUkUKKworICAgKiogUGVyIHNhbHZhcmUgdW5hIHBvcnppb25lIGRpIGZpbGUsIGJhdHRpICB2IG1vdmltZW50byA6dyBOT01FRklMRSAqKgorCisgIDEuIE11b3ZpIGlsIGN1cnNvcmUgc3UgcXVlc3RhIGxpbmVhLgorCisgIDIuIFByZW1pICB2ICBlIG11b3ZpIGlsIGN1cnNvcmUgZmlubyBhbGxhIGxpbmVhIG51bWVyYXRhIDUuLCBxdWkgc290dG8uCisgICAgIE5vdGEgY2hlIGlsIHRlc3RvIHZpZW5lIGV2aWRlbnppYXRvLgorCisgIDMuIEJhdHRpIGlsIGNhcmF0dGVyZSAgOiAgLiAgSW4gZm9uZG8gYWxsbyBzY2hlcm1vIGFwcGFyaXLgIDonPCwnPiAgLgorCisgIDQuIEJhdHRpICB3IFRFU1QgICwgZG92ZSBURVNUIOggaWwgbm9tZSBkaSB1biBmaWxlIG5vbiBhbmNvcmEgZXNpc3RlbnRlLgorICAgICBWZXJpZmljYSBjaGUgc2kgdmVkYSAgOic8LCc+dyBURVNUICAgcHJpbWEgZGkgZGFyZSA8SU5WSU8+LgorCisgIDUuIFZpbSBzY3JpdmVy4CBuZWwgZmlsZSBURVNUIGxlIGxpbmVlIGNoZSBoYWkgc2VsZXppb25hdG8uICBVc2EgIDohZGlyCisgICAgIG8gIDohbHMgIHBlciBjb250cm9sbGFyZSBjaGUgZXNpc3RlLiAgTm9uIGNhbmNlbGxhcmxvIG9yYSEgIFRpIHNlcnZpcuAKKyAgICAgbmVsbGEgcHJvc3NpbWEgbGV6aW9uZS4KKworTk9UQTogIEJhdHRlcmUgIHYgIGluaXppYSB1bmEgc2VsZXppb25lIHZpc3VhbGUuICBQdW9pIG11b3ZlcmUgaWwgY3Vyc29yZQorICAgICAgIGNvbWUgdnVvaSwgZSByZW5kZXJlIGxhIHNlbGV6aW9uZSBwafkgcGljY29sYSBvIHBp+SBncmFuZGUuICBQb2kKKyAgICAgICBwdW9pIHVzYXJlIHVuIG9wZXJhdG9yZSBwZXIgYWdpcmUgc3VsIHRlc3RvIHNlbGV6aW9uYXRvLgorICAgICAgIEFkIGVzLiwgIGQgIGNhbmNlbGxhIGlsIHRlc3RvLgorfn5+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+CisJCSAgTGV6aW9uZSA1LjQ6IElOU0VSSVJFIEUgUklVTklSRSBGSUxFCisKKworICAgKiogUGVyIGluc2VyaXJlIGlsIGNvbnRlbnV0byBkaSB1biBmaWxlLCBiYXR0aSAgOnIgTk9NRUZJTEUgICoqCisKKyAgMS4gUG9zaXppb25hIGlsIGN1cnNvcmUgYXBwZW5hIHNvcHJhIHF1ZXN0YSByaWdhLgorCitOT1RBOiBEb3BvIGF2ZXIgZXNlZ3VpdG8gaWwgUGFzc28gMiB2ZWRyYWkgaWwgdGVzdG8gZGVsbGEgTGV6aW9uZSA1LjMuCisgICAgICBRdWluZGkgc3Bvc3RhdGkgSU4gR0lVJyBwZXIgdG9ybmFyZSBhbmNvcmEgYSBxdWVzdGEgTGV6aW9uZS4KKworICAyLiBPcmEgaW5zZXJpc2NpIGlsIHR1byBmaWxlIFRFU1QgY29uIGlsIGNvbWFuZG8gICA6ciBURVNUICAgZG92ZSBURVNUIOgKKyAgICAgaWwgbm9tZSBjaGUgaGFpIHVzYXRvIHBlciBjcmVhcmUgaWwgZmlsZS4KKyAgICAgSWwgZmlsZSByaWNoaWVzdG8g6CBpbnNlcml0byBzb3R0byBsYSBsaW5lYSBpbiBjdWkgc2kgdHJvdmEgaWwgY3Vyc29yZS4KKworICAzLiBQZXIgdmVyaWZpY2FyZSBjaGUgdW4gZmlsZSDoIHN0YXRvIGluc2VyaXRvLCB0b3JuYSBpbmRpZXRybyBjb2wgY3Vyc29yZQorICAgICBlIG5vdGEgY2hlIGNpIHNvbm8gb3JhIDIgY29waWUgZGVsbGEgTGV6aW9uZSA1LjMsIHF1ZWxsYSBvcmlnaW5hbGUgZQorICAgICBxdWVsbGEgY2hlIHZpZW5lIGRhbCBmaWxlLgorCitOT1RBOiAgUHVvaSBhbmNoZSBsZWdnZXJlIGwnb3V0cHV0IHByb2RvdHRvIGRhIHVuIGNvbWFuZG8gZXN0ZXJuby4gQWQgZXMuCisgICAgICAgOnIgIWxzICBsZWdnZSBsJ291dHB1dCBkZWwgY29tYW5kbyAgbHMgZSBsbyBpbnNlcmlzY2Ugc290dG8gbGEgbGluZWEKKyAgICAgICBpbiBjdWkgc2kgdHJvdmEgaWwgY3Vyc29yZS4KKworfn5+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+CisJCQkgICAgICAgTGV6aW9uZSA1IFNPTU1BUklPCisKKworICAxLiAgOiFjb21hbmRvICBlc2VndWUgdW4gY29tYW5kbyBlc3Rlcm5vLgorCisgICAgICBBbGN1bmkgZXNlbXBpIHV0aWxpIHNvbm8gW2luIE1TRE9TXToKKwkgIDohZGlyCQkgICAgIC0JdmlzdWFsaXp6YSBsaXN0YSBkaXJlY3RvcnkKKwkgIDohZGVsIE5PTUVGSUxFICAgICAtCWNhbmNlbGxhIGZpbGUgTk9NRUZJTEUuCisKKyAgMi4gIDp3IE5PTUVGSUxFICBzY3JpdmUgc3UgZGlzY28gaWwgZmlsZSBjaGUgc3RhaSBlZGl0YW5kbyBjb24gbm9tZSBOT01FRklMRS4KKworICAzLiAgdiBtb3ZpbWVudG8gOncgTk9NRUZJTEUgIHNhbHZhIGxlIGxpbmVlIHNlbGV6aW9uYXRlIGluIG1hbmllcmEKKyAgICAgIHZpc3VhbGUgbmVsIGZpbGUgTk9NRUZJTEUuCisKKyAgNC4gIDpyIE5PTUVGSUxFICBsZWdnZSBpbCBmaWxlIE5PTUVGSUxFIGRhIGRpc2NvIGUgbG8gaW5zZXJpc2NlIG5lbCBmaWxlCisgICAgICBjaGUgc3RhaSBtb2RpZmljYW5kbywgZG9wbyBsYSBsaW5lYSBpbiBjdWkg6CBwb3NpemlvbmF0byBpbCBjdXJzb3JlLgorCisgIDUuICA6ciAhZGlyICBsZWdnZSBsJ291dHB1dCBkZWwgY29tYW5kbyAgZGlyICBlIGxvIGluc2VyaXNjZSBkb3BvIGxhCisgICAgICBsaW5lYSBpbiBjdWkg6CBwb3NpemlvbmF0byBpbCBjdXJzb3JlLgorCisKKworfn5+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+CisJCSBMZXppb25lIDYuMTogSUwgQ09NQU5ETyBPUEVOIFtBUFJJUkVdCisKKworICAgICAgICAqKiBCYXR0aSAgIG8gICBwZXIgYXByaXJlIHVuYSBsaW5lYSBzb3R0byBpbCBjdXJzb3JlICoqCisgICAgICAgICoqICAgICAgICAgZSBwYXNzYXJlIGluIE1vZGFsaXTgIEluc2VyaW1lbnRvLiAgICAgICAgKioKKworICAxLiBNdW92aSBpbCBjdXJzb3JlIGZpbm8gYWxsYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uCisKKyAgMi4gQmF0dGkgbGEgbGV0dGVyYSBtaW51c2NvbGEgIG8gIHBlciBhcHJpcmUgdW5hIGxpbmVhIHNvdHRvIGlsIGN1cnNvcmUgZQorICAgICBwYXNzYXJlIGluIE1vZGFsaXTgIEluc2VyaW1lbnRvLgorCisgIDMuIFBvaSBpbnNlcmlzY2kgZGVsIHRlc3RvIGUgcHJlbWkgPEVTQz4gcGVyIHVzY2lyZSBkYWxsYQorICAgICBNb2RhbGl04CBJbnNlcmltZW50by4KKworLS0tPiBEb3BvIGJhdHR1dG8gIG8gIGlsIGN1cnNvcmUg6CBzdWxsYSBsaW5lYSBhcGVydGEgKGluIE1vZGFsaXTgIEluc2VyaW1lbnRvKS4KKworICA0LiBQZXIgYXByaXJlIHVuYSBsaW5lYSBTT1BSQSBpbCBjdXJzb3JlLCBiYXR0aSB1bmEgICBPICBtYWl1c2NvbGEsIGludmVjZQorICAgICBjaGUgdW5hICAgbyAgIG1pbnVzY29sYS4gUHJvdmEgc3VsbGEgbGluZWEgcXVpIHNvdHRvLgorQXByaSB1bmEgbGluZWEgU09QUkEgcXVlc3RhIGJhdHRlbmRvICBPICBtZW50cmUgaWwgY3Vyc29yZSDoIHN1IHF1ZXN0YSBsaW5lYS4KKworCisKK35+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+fgorCQlMZXppb25lIDYuMjogSUwgQ09NQU5ETyBBUFBFTkQgW0FHR0lVTkdFUkVdCisKKwkgICAgICoqIEJhdHRpICAgYSAgIHBlciBpbnNlcmlyZSB0ZXN0byBET1BPIGlsIGN1cnNvcmUuICoqCisKKyAgMS4gTXVvdmkgaWwgY3Vyc29yZSBhbGwnaW5pemlvIGRlbGxhIGxpbmVhIHF1aSBzb3R0bywgaW5kaWNhdGEgZGEgLS0tPi4KKworICAyLiBCYXR0aSAgZSAgZmluY2jpIGlsIGN1cnNvcmUgYXJyaXZhIGFsbGEgZmluZSBkaSAgbGkgLgorCisgIDMuIEJhdHRpIHVuYSAgYSAgKG1pbnVzY29sYSkgcGVyIGFnZ2l1bmdlcmUgdGVzdG8gRE9QTyBpbCBjdXJzb3JlLgorCisgIDQuIENvbXBsZXRhIGxhIHBhcm9sYSBjb21lIG1vc3RyYXRvIG5lbGxhIGxpbmVhIHN1Y2Nlc3NpdmEuICBQcmVtaSA8RVNDPgorICAgICBwZXIgdXNjaXJlIGRhbGxhIE1vZGFsaXTgIEluc2VyaW1lbnRvLgorCisgIDUuIFVzYSAgZSAgcGVyIHBhc3NhcmUgYWxsYSBzdWNjZXNzaXZhIHBhcm9sYSBpbmNvbXBsZXRhIGUgcmlwZXRpIGkgcGFzc2kKKyAgICAgMyBlIDQuCisKKy0tLT4gUXVlc3RhIGxpIHRpIHBlcm1ldHRlcuAgZGkgZXNlcmNpdCBhZCBhZ2dpdW5nZXJlIHRlc3RvIGEgdW5hIGxpbmVhLgorLS0tPiBRdWVzdGEgbGluZWEgdGkgcGVybWV0dGVy4CBkaSBlc2VyY2l0YXJ0aSBhZCBhZ2dpdW5nZXJlIHRlc3RvIGEgdW5hIGxpbmVhLgorCitOT1RBOiBhLCBpIGVkIEEgZW50cmFubyBzZW1wcmUgaW4gTW9kYWxpdOAgSW5zZXJpbWVudG8sIGxhIHNvbGEgZGlmZmVyZW56YQorICAgICAg6CBkb3ZlIHZlcnJhbm5vIGluc2VyaXRpIGkgY2FyYXR0ZXJpLgorCit+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+fn4KKwkgICBMZXppb25lIDYuMzogVU4gQUxUUk8gTU9ETyBESSBSSU1QSUFaWkFSRSBbUkVQTEFDRV0KKworCisgICAgICoqIEJhdHRpIHVuYSAgUiAgbWFpdXNjb2xhIHBlciByaW1waWF6emFyZSBwafkgZGkgdW4gY2FyYXR0ZXJlLiAqKgorCisgIDEuIE11b3ZpIGlsIGN1cnNvcmUgYWxsYSBwcmltYSBsaW5lYSBxdWkgc290dG8sIGluZGljYXRhIGRhIC0tLT4uICBNdW92aSBpbAorICAgICBjdXJzb3JlIGFsbCdpbml6aW8gZGVsIHByaW1vICB4eHggLgorCisgIDIuIE9yYSBiYXR0aSAgUiAgZSBiYXR0aSBpbCBudW1lcm8gY2hlIHZlZGkgbmVsbGEgbGluZWEgc2VndWVudGUsIGluIG1vZG8KKyAgICAgY2hlIHJpbXBpYXp6aSBsJyAgeHh4IC4KKworICAzLiBQcmVtaSA8RVNDPiBwZXIgdXNjaXJlIGRhbGxhIE1vZGFsaXTgIFJlcGxhY2UuICBOb3RhIGNoZSBpbCByZXN0byBkZWxsYQorICAgICBsaW5lYSByZXN0YSBpbnZhcmlhdG8uCisKKyAgNC4gUmlwZXRpIGkgcGFzc2kgaW4gbW9kbyBkYSByaW1waWF6emFyZSBsJ2FsdHJvIHh4eCAuCisKKy0tLT4gQWdnaXVuZ2VuZG8gMTIzIGEgeHh4IHNpIG90dGllbmUgeHh4LgorLS0tPiBBZ2dpdW5nZW5kbyAxMjMgYSA0NTYgc2kgb3R0aWVuZSA1NzkuCisKK05PVEE6ICBMYSBNb2RhbGl04CBSZXBsYWNlIOggY29tZSBsYSBNb2RhbGl04CBJbnNlcmltZW50bywgbWEgb2duaSBjYXJhdHRlcmUKKyAgICAgICBjaGUgdmllbmUgYmF0dHV0byByaWNvcHJlIHVuIGNhcmF0dGVyZSBlc2lzdGVudGUuCisKK35+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+fgorCQkgTGV6aW9uZSA2LjQ6IENPUElBIEUgSU5DT0xMQSBERUwgVEVTVE8KKworCisgICAgICoqIHVzYSBsJ29wZXJhdG9yZSAgeSAgcGVyIGNvcGlhcmUgZGVsIHRlc3RvIGUgIHAgIHBlciBpbmNvbGxhcmxvICoqCisKKyAgMS4gVmFpIGFsbGEgbGluZWEgaW5kaWNhdGEgZGEgLS0tPiBxdWkgc290dG8sIGUgbWV0dGkgaWwgY3Vyc29yZSBkb3BvICJhKSIuCisgIAorICAyLiBFbnRyYSBpbiBNb2RhbGl04CBWaXN1YWxlIGNvbiAgdiAgZSBtZXR0aSBpbCBjdXJzb3JlIGRhdmFudGkgYSAicHJpbW8iLgorICAKKyAgMy4gQmF0dGkgIHkgIHBlciBjb3BpYXJlIFt5YW5rXSBpbCB0ZXN0byBldmlkZW56aWF0by4KKworICA0LiBNdW92aSBpbCBjdXJzb3JlIGFsbGEgZmluZSBkZWxsYSBsaW5lYSBzdWNjZXNzaXZhOiAgaiQKKworICA1LiBCYXR0aSAgcCAgcGVyIGluY29sbGFyZSBbcGFzdGVdIGlsIHRlc3RvLiAgUG9pIGJhdHRpOiAgYSBzZWNvbmRvIDxFU0M+IC4KKworICA2LiBVc2EgbGEgTW9kYWxpdOAgVmlzdWFsZSBwZXIgc2VsZXppb25hcmUgIiBlbGVtZW50by4iLCBjb3BpYWxvIGNvbiAgeSAsCisgICAgIFZhaSBhbGxhIGZpbmUgZGVsbGEgbGluZWEgc3VjY2Vzc2l2YSBjb24gIGokICBlIGluY29sbGEgaWwgdGVzdG8gY29uICBwIC4KKworLS0tPiAgYSkgcXVlc3RvIOggaWwgcHJpbW8gZWxlbWVudG8uCisgICAgICBiKQorCitOT1RBOiBQdW9pIHVzYXJlICB5ICBjb21lIG9wZXJhdG9yZTsgIHl3ICBjb3BpYSB1bmEgcGFyb2xhIFt3b3JkXS4KK35+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+fgorCSAgICAgICAgIExlemlvbmUgNi41OiBTRVQgW0lNUE9TVEFdIFVOJ09QWklPTkUKKworICAgICAgICoqIEltcG9zdGEgdW4nb3B6aW9uZSBwZXIgaWdub3JhcmUgbWFpdXNjb2xlL21pbnVzY29sZSAqKgorICAgICAgICoqICAgICAgICAgICAgIGR1cmFudGUgbGEgcmljZXJjYS9zb3N0aXR1emlvbmUgICAgICAgICAqKgorCisgMS4gUmljZXJjYSAnbm90YScgYmF0dGVuZG86ICAgL25vdGEgPEVOVEVSPgorICAgIFJpcGV0aSBsYSByaWNlcmNhIHBp+SB2b2x0ZSB1c2FuZG8gaWwgdGFzdG8gICBuCisKKyAyLiBJbXBvc3RhIGwnb3B6aW9uZSAnaWMnIChJZ25vcmUgQ2FzZSwgW0lnbm9yYSBtYWl1c2NvbG8vbWludXNjb2xvXSkKKyAgICBiYXR0ZW5kbzogIDpzZXQgaWMKKworIDMuIE9yYSByaWNlcmNhIGFuY29yYSAnbm90YScgcHJlbWVuZG8gaWwgdGFzdG8gICAgbgorICAgIFRyb3ZlcmFpIGFkZXNzbyBhbmNoZSAgTm90YSAgZSAgTk9UQSAuCisKKyA0LiBJbXBvc3RhIGxlIG9wemlvbmkgJ2hsc2VhcmNoJyBlICdpbmNzZWFyY2gnICAgIDpzZXQgaGxzIGlzCisKKyA1LiBPcmEgYmF0dGkgYW5jb3JhIGlsIGNvbWFuZG8gZGkgcmljZXJjYSwgZSBndWFyZGEgY29zYSBzdWNjZWRlOiAgICAvbm90YQorIAorIDYuIFBlciBkaXNhYmlsaXRhcmUgaWwgcmljb25vc2NpbWVudG8gZGkgbWFpdXNjb2xlL21pbnVzY29sZSBiYXR0aTogIDpzZXQgbm9pYworTk9UQTogUGVyIG5vbiBldmlkZW56aWFyZSBsZSBvY2NvcnJlbnplIHRyb3ZhdGUgYmF0dGk6ICAgOm5vaGxzZWFyY2gKK05PVEE6IFBlciBpZ25vcmFyZSBtYWl1c2NvbGUvbWludXNjb2xlIHNvbG8gcGVyIHVuYSByaWNlcmNhLCB1c2EgXGMKKyAgICAgIG5lbCBjb21hbmRvIGRpIHJpY2VyY2E6ICAgIC9ub3RhXGMgPElOVklPPgorfn5+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+CisJCSAgICAgICBMZXppb25lIDYgU09NTUFSSU8KKworICAxLiBCYXR0aSAgbyAgcGVyIGFnZ2l1bmdlcmUgdW5hIGxpbmVhIFNPVFRPIGlsIGN1cnNvcmUgZWQgZW50cmFyZSBpbgorICAgICAgICAgICAgICAgTW9kYWxpdOAgSW5zZXJpbWVudG8uCisgICAgIEJhdHRpICBPICBwZXIgYWdnaXVuZ2VyZSB1bmEgbGluZWEgU09QUkEgaWwgY3Vyc29yZS4KKworICAyLiBCYXR0aSAgYSAgcGVyIGluc2VyaXJlIHRlc3RvIERPUE8gaWwgY3Vyc29yZS4KKyAgICAgQmF0dGkgIEEgIHBlciBpbnNlcmlyZSB0ZXN0byBhbGxhIGZpbmUgZGVsbGEgbGluZWEuCisKKyAgMy4gSWwgY29tYW5kbyAgIGUgIHNwb3N0YSBpbCBjdXJzb3JlIGFsbGEgZmluZSBkaSB1bmEgcGFyb2xhLgorCisgIDQuIEwnb3BlcmF0b3JlICB5ICBjb3BpYSBkZWwgdGVzdG8sICBwICBpbmNvbGxhIGRlbCB0ZXN0by4KKworICA1LiBCYXR0aSAgUiAgcGVyIGVudHJhcmUgaW4gTW9kYWxpdOAgUmVwbGFjZSwgZSBuZSBlc2NpIHByZW1lbmRvIDxFU0M+LgorCisgIDYuIEJhdHRpICI6c2V0IHh4eCIgcGVyIGltcG9zdGFyZSBsJ29wemlvbmUgInh4eCIuIEFsY3VuIG9wemlvbmkgc29ubzoKKyAgICAgICdpYycgJ2lnbm9yZWNhc2UnCWlnbm9yYXJlIG1haXVzY29sZS9taW51c2NvbGUgbmVsbGEgcmljZXJjYQorICAgICAgJ2lzJyAnaW5jc2VhcmNoJwltb3N0cmEgb2Njb3JyZW56ZSBwYXJ6aWFsaSBkdXJhbnRlIHVuYSByaWNlcmNhCisgICAgICAnaGxzJyAnaGxzZWFyY2gnCWV2aWRlbnppYSB0dXR0ZSBsZSBvY2NvcnJlbnplIGRpIHVuYSByaWNlcmNhCisgICAgIFB1b2kgdXNhcmUgc2lhIGlsIG5vbWUgY29tcGxldG8gZGkgdW4nb3B6aW9uZSBjaGUgcXVlbGxvIGFiYnJldmlhdG8uCisKKyAgNy4gVXNhIGlsIHByZWZpc3NvICJubyIgcGVyIGFubnVsbGFyZSB1bmEgb3B6aW9uZTogICA6c2V0IG5vaWMKK35+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+fgorCQkgICAgICBMZXppb25lIDcuMTogT1RURU5FUkUgQUlVVE8KKworCQkgKiogVXNhIGlsIHNpc3RlbWEgZGkgYWl1dG8gb24tbGluZSAqKgorCisgIFZpbSBoYSB1biBlc2F1cmllbnRlIHNpc3RlbWEgZGkgYWl1dG8gb24tbGluZS4gIFBlciBjb21pbmNpYXJlLCBwcm92YSB1bmEgZGkKKyAgcXVlc3RlIGFsdGVybmF0aXZlOgorCS0gcHJlbWkgaWwgdGFzdG8gPEFJVVRPPiAoc2UgY2UgbifoIHVubykKKwktIHByZW1pIGlsIHRhc3RvIDxGMT4gICAgKHNlIGNlIG4n6CB1bm8pCisJLSBiYXR0aSAgIDpoZWxwICA8SU5WSU8+ICBPUFBVUkUgICA6aCA8SU5WSU8+CisKKyAgTGVnZ2kgaWwgdGVzdG8gbmVsbGEgZmluZXN0cmEgZGkgYWl1dG8gcGVyIHZlZGVyZSBjb21lIGZ1bnppb25hIGwnYWl1dG8uCisgIEJhdHRpICBDVFJMLVcgQ1RSTC1XCXBlciBwYXNzYXJlIGRhIHVuYSBmaW5lc3RyYSBhbGwnYWx0cmEuCisgIEJhdHRpICA6cSA8SU5WSU8+ICAgcGVyIGNoaXVkZXJlIGxhIGZpbmVzdHJhIGRpIGFpdXRvLgorCisgIFB1b2kgdHJvdmFyZSBhaXV0byBzdSBxdWFzaSB0dXR0bywgZGFuZG8gdW4gYXJnb21lbnRvIGFsIGNvbWFuZG8gIjpoZWxwIgorICBQcm92YSBxdWVzdGkgKG5vbiBkaW1lbnRpY2FyZSBkaSBwcmVtZXJlIDxJTlZJTz4pOgorCisJOmhlbHAgdworCTpoZWxwIGNfQ1RSTC1ECisJOmhlbHAgaW5zZXJ0LWluZGV4CisJOmhlbHAgdXNlci1tYW51YWwKKworfn5+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+CisJCSBMZXppb25lIDcuMjogUFJFUEFSQVJFIFVOTyBTQ1JJUFQgSU5JWklBTEUKKworCQkgICAgICAgICoqIEF0dGl2YSBsZSBvcHppb25pIFZpbSAqKgorCisgIFZpbSBoYSBtb2x0ZSBwafkgb3B6aW9uaSBkaSBWaSwgbWEgbW9sdGUgZGkgZXNzZSBzb25vIHByZWRlZmluaXRlIGluYXR0aXZlLgorICBQZXIgY29taW5jaWFyZSBhIHVzYXJlIHBp+SBvcHppb25pLCBkZXZpIGNyZWFyZSB1biBmaWxlICJ2aW1yYyIuCisKKyAgMS4gQ29taW5jaWEgYSBlZGl0YXJlIGlsIGZpbGUgInZpbXJjIi4gIFF1ZXN0byBkaXBlbmRlIGRhbCB0dW8gc2lzdGVtYToKKwk6ZSB+Ly52aW1yYwkJcGVyIFVuaXgKKwk6ZSAkVklNL192aW1yYwkJcGVyIE1TLVdpbmRvd3MKKworICAyLiBPcmEgbGVnZ2kgaSBjb250ZW51dGkgZGVsIGZpbGUgInZpbXJjIiBkaXN0cmlidWl0byBjb21lIGVzZW1waW86CisKKwk6ciAkVklNUlVOVElNRS92aW1yY19leGFtcGxlLnZpbQorCisgIDMuIFNjcml2aSBpbCBmaWxlIGNvbjoKKwk6dworCisgIExhIHByb3NzaW1hIHZvbHRhIGNoZSBhcHJpIFZpbSwgc2Fy4CBhYmlsaXRhdGEgbGEgY29sb3JhemlvbmUgc2ludGF0dGljYS4KKyAgUHVvaSBhZ2dpdW5nZXJlIGEgcXVlc3RvIGZpbGUgInZpbXJjIiB0dXR0ZSBsZSB0dWUgaW1wb3N0YXppb25pIHByZWZlcml0ZS4KKyAgUGVyIG1hZ2dpb3JpIGluZm9ybWF6aW9uaSBiYXR0aTogIDpoZWxwIHZpbXJjLWludHJvCisKK35+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+fgorCQkJTGV6aW9uZSA3LjM6IENPTVBMRVRBTUVOVE8KKworCisJICAgICAgKiogQ29tcGxldGFtZW50byBsaW5lYSBjb21hbmRpIGNvbiBDVFJMLUQgZSA8VEFCPiAqKgorCisgIDEuIEltcG9zdGEgVmltIGluIG1vZGFsaXTgIGNvbXBhdGliaWxlOiAgOnNldCBub2NwCisKKyAgMi4gR3VhcmRhIGkgZmlsZSBlc2lzdGVudGkgbmVsbGEgZGlyZWN0b3J5OiAgOiFscyAgIG8gIDohZGlyCisKKyAgMy4gQmF0dGkgbCdpbml6aW8gZGkgdW4gY29tYW5kbzogIDplCisKKyAgNC4gUHJlbWkgIENUUkwtRCAgZSBWaW0gdGkgbW9zdHJhIHVuYSBsaXN0YSBkaSBjb21hbmRpIGNoZSBpbml6aWFubyBwZXIgImUiLgorCisgIDUuIFByZW1pICA8VEFCPiAgZSBWaW0gY29tcGxldGEgcGVyIHRlIGlsIG5vbWUgY29tYW5kbyBjb21lICI6ZWRpdCIuCisKKyAgNi4gT3JhIGJhdHRpIHVubyBzcGF6aW8gZSBsJ2luaXppbyBkZWwgbm9tZSBkaSB1biBmaWxlIGVzaXN0ZW50ZTogIDplZGl0IEZJTAorCisgIDcuIFByZW1pIDxUQUI+LiAgVmltIGNvbXBsZXRlcuAgaWwgbm9tZSBkZWwgZmlsZSAoc2Ug6CBpbCBzb2xvIHBvc3NpYmlsZSkuCisKK05PVEE6ICBJbCBjb21wbGV0YW1lbnRvIOggZGlzcG9uaWJpbGUgcGVyIG1vbHRpIGNvbWFuZGkuICBQcm92YSBhIGJhdHRlcmUKKyAgICAgICBDVFJMLUQgZSA8VEFCPi4gIFBhcnRpY29sYXJtZW50ZSB1dGlsZSBwZXIgIDpoZWxwIC4KKworfn5+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+CisJCQkgICBMZXppb25lIDcgU29tbWFyaW8KKworCisgIDEuIEJhdHRpICA6aGVscCAgbyBwcmVtaSA8RjE+IG8gPEhlbHA+ICBwZXIgYXByaXJlIHVuYSBmaW5lc3RyYSBkaSBhaXV0by4KKworICAyLiBCYXR0aSAgOmhlbHAgY29tYW5kbyAgcGVyIGF2ZXJlIGFpdXRvIHN1ICBjb21hbmRvIC4KKworICAzLiBCYXR0aSAgQ1RSTC1XIENUUkwtVyAgcGVyIHNhbHRhcmUgYWxsYSBwcm9zc2ltYSBmaW5lc3RyYS4KKworICA0LiBCYXR0aSAgOnEgIHBlciBjaGl1ZGVyZSBsYSBmaW5lc3RyYSBkaSBhaXV0by4KKworICA1LiBDcmVhIHVubyBzY3JpcHQgaW5pemlhbGUgdmltcmMgY29udGVuZW50ZSBsZSB0dWUgaW1wb3N0YXppb25pIHByZWZlcml0ZS4KKworICA2LiBNZW50cmUgYmF0dGkgdW4gY29tYW5kbyAgOiAsIHByZW1pIENUUkwtRCBwZXIgdmVkZXJlIGkgcG9zc2liaWxpCisgICAgIGNvbXBsZXRhbWVudGkuICBQcmVtaSA8VEFCPiBwZXIgdXNhcmUgaWwgY29tcGxldGFtZW50byBkZXNpZGVyYXRvLgorCisKKworCisKKworCit+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+fn4KKyAgUXVpIGZpbmlzY2UgbGEgR3VpZGEgYSBWaW0uICBJbCBzdW8gaW50ZW50byDoIGRpIGZvcm5pcmUgdW5hIGJyZXZlIHBhbm9yYW1pY2EKKyAgZGVsbCdFZGl0b3IgVmltLCBjaGUgdGkgY29uc2VudGEgZGkgdXNhcmUgbCdFZGl0b3IgYWJiYXN0YW56YSBmYWNpbG1lbnRlLgorICBRdWVzdGEgZ3VpZGEg6CBsYXJnYW1lbnRlIGluY29tcGxldGEgcG9pY2jpIFZpbSBoYSBtb2x0aXNzaW1pIGFsdHJpIGNvbWFuZGkuCisgIFB1b2kgYW5jaGUgbGVnZ2VyZSBpbCBtYW51YWxlIHV0ZW50ZSAoYW5jaGUgaW4gaXRhbGlhbm8pOiAiOmhlbHAgdXNlci1tYW51YWwiLgorCisgIFBlciB1bHRlcmlvcmUgbGV0dHVyYSBlIHN0dWRpbywgcmFjY29tYW5kaWFtbzoKKwlWaW0gLSBWaSBJbXByb3ZlZCAtIGRpIFN0ZXZlIE91YWxsaW5lICAgICBFZGl0b3JlOiBOZXcgUmlkZXJzCisgIElsIHByaW1vIGxpYnJvIGNvbXBsZXRhbWVudGUgZGVkaWNhdG8gYSBWaW0uIFV0aWxlIHNwZWNpZSBwZXIgcHJpbmNpcGlhbnRpLgorICBDb250aWVuZSBtb2x0aSBlc2VtcGkgZSBmaWd1cmUuCisgIFZlZGkgaHR0cDovL2ljY2YtaG9sbGFuZC5vcmcvY2xpY2s1Lmh0bWwKKworICBRdWVzdCdhbHRybyBsaWJybyDoIHBp+SBzdSBWaSBjaGUgc3UgVmltLCBtYSDoIHB1cmUgY29uc2lnbGlhdG86CisJTGVhcm5pbmcgdGhlIFZpIEVkaXRvciAtIGRpIExpbmRhIExhbWIgZSBBcm5vbGQgUm9iYmlucworCUVkaXRvcmU6IE8nUmVpbGx5ICYgQXNzb2NpYXRlcyBJbmMuCisgIEUnIHVuIGJ1b24gbGlicm8gcGVyIGltcGFyYXJlIHF1YXNpIHR1dHRvIGNp8iBjaGUgcHVvaSB2b2xlciBmYXJlIGNvbiBWaS4KKyAgTmUgZXNpc3RlIHVuYSB0cmFkdXppb25lIGl0YWxpYW5hLCBiYXNhdGEgc3UgdW5hIHZlY2NoaWEgZWRpemlvbmUuCisKKyAgUXVlc3RhIGd1aWRhIOggc3RhdGEgc2NyaXR0YSBkYSBNaWNoYWVsIEMuIFBpZXJjZSBlIFJvYmVydCBLLiBXYXJlLAorICBDb2xvcmFkbyBTY2hvb2wgb2YgTWluZXMsIHVzYW5kbyBpZGVlIGZvcm5pdGUgZGEgQ2hhcmxlcyBTbWl0aCwKKyAgQ29sb3JhZG8gU3RhdGUgVW5pdmVyc2l0eSAtIEUtbWFpbDogYndhcmVAbWluZXMuY29sb3JhZG8uZWR1CisgIE1vZGlmaWNhdG8gcGVyIFZpbSBkYSBCcmFtIE1vb2xlbmFhci4KKyAgU2VnbmFsYXJlIHJlZnVzaSBhZCBBbnRvbmlvIENvbG9tYm8gLSBFLW1haWw6IGF6YzEwMEBnbWFpbC5jb20KK35+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+fgo=