Heya, As said on IRC, I've NMUed libshell-posix-select-a-long-name-really-perl-modules-always-do-that-perl. Patch attached #-)
Marc -- Fachbegriffe der Informatik - Einfach erklärt 5: Breitbandkommunikation Porno MPEGs mit Ton (Kristian Köhntopp)
diff -u libshell-posix-select-perl-0.05/debian/control libshell-posix-select-perl-0.05/debian/control --- libshell-posix-select-perl-0.05/debian/control +++ libshell-posix-select-perl-0.05/debian/control @@ -2,7 +2,7 @@ Section: perl Priority: optional Build-Depends: debhelper (>= 4.0.2) -Build-Depends-Indep: perl (>= 5.8.0-7) +Build-Depends-Indep: perl (>= 5.8.0-7), sharutils Maintainer: Florian Ragwitz <[EMAIL PROTECTED]> Standards-Version: 3.6.2 diff -u libshell-posix-select-perl-0.05/debian/changelog libshell-posix-select-perl-0.05/debian/changelog --- libshell-posix-select-perl-0.05/debian/changelog +++ libshell-posix-select-perl-0.05/debian/changelog @@ -1,3 +1,13 @@ +libshell-posix-select-perl (0.05-1.1) unstable; urgency=low + + * Non-maintainer upload (maintainer allowed it) + * Updated testsuite reference files to cope with changes in Filter::Simple. + As they contain binary changes, I needed to encode them with uuencode + (added the sharutils build-dep) and change the build system to extract + them. (Closes: #353133) + + -- Marc 'HE' Brockschmidt <[EMAIL PROTECTED]> Sun, 23 Apr 2006 19:32:25 +0200 + libshell-posix-select-perl (0.05-1) unstable; urgency=low * Initial Release (Closes: #324737). diff -u libshell-posix-select-perl-0.05/debian/rules libshell-posix-select-perl-0.05/debian/rules --- libshell-posix-select-perl-0.05/debian/rules +++ libshell-posix-select-perl-0.05/debian/rules @@ -22,6 +22,8 @@ dh_testroot rm -f build-stamp install-stamp rm -f Scripts/*.plx *.sdump + -mv $(CURDIR)/Ref_Data/eslect.cdump_ref.old $(CURDIR)/Ref_Data/eslect.cdump_ref + -mv $(CURDIR)/Ref_Data/nested_heading_prompt.cdump_ref.old $(CURDIR)/Ref_Data/nested_heading_prompt.cdump_ref -$(MAKE) distclean dh_clean @@ -30,6 +32,10 @@ dh_testdir dh_testroot dh_clean -k + cp $(CURDIR)/Ref_Data/eslect.cdump_ref $(CURDIR)/Ref_Data/eslect.cdump_ref.old + uudecode $(CURDIR)/debian/eslect.cdump_ref.b64 -o $(CURDIR)/Ref_Data/eslect.cdump_ref + cp $(CURDIR)/Ref_Data/nested_heading_prompt.cdump_ref $(CURDIR)/Ref_Data/nested_heading_prompt.cdump_ref.old + uudecode $(CURDIR)/debian/nested_heading_prompt.cdump_ref.b64 -o $(CURDIR)/Ref_Data/nested_heading_prompt.cdump_ref $(MAKE) test $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr rmdir --ignore-fail-on-non-empty --parents $(TMP)/usr/lib/perl5 only in patch2: unchanged: --- libshell-posix-select-perl-0.05.orig/debian/eslect.cdump_ref.b64 +++ libshell-posix-select-perl-0.05/debian/eslect.cdump_ref.b64 @@ -0,0 +1,145 @@ +begin-base64 644 eslect.cdump_ref +CkJFR0lOIHsgQEFSR1Ygb3IgQEFSR1Y9HAAAAAAcICA7IH0KIyBlc2xlY3Qg +JHZhclsyXSAoICkgeyBwcmludCAiJHZhclsyXVxuIiB9CgokSGVhZGluZz0c +AAAAARw7CgoJIyBDb2RlIGdlbmVyYXRlZCBieSBTaGVsbDo6UE9TSVg6OlNl +bGVjdCB2MC4wNSwgYnkgdGltKEFUKVRlYWNoTWVQZXJsLmNvbQoJIyBOT1RB +IEJFTkU6IExpbmUgMSBvZiB0aGlzIHNlZ21lbnQgbXVzdCBzdGFydCB3aXRo +IHssIHNvIHVzZXIgY2FuIExBQkVMIGl0CiAgeyAjICoqKiogTkVXIFdSQVBQ +RVIgU0NPUEUgRk9SIFNFTEVDVExPT1AgIzEgKioqKgoJCSRTaGVsbDo6UE9T +SVg6OlNlbGVjdDo6REVCVUcgPiAxIGFuZCAxID09IDEgYW5kCgkJCXdhcm4g +IkxJTkUgTlVNQkVSIEZPUiBTVEFSVCBPRiBVU0VSIENPREVfQkxPQ0sgSVM6 +ICAiLCBfX0xJTkVfXywgIlxuIjsKICAgIF9TRUxfTE9PUDE6IHsgIyAqKioq +IE5FVyBTQ09QRSBGT1IgU0VMRUNUTE9PUCAjMSAqKioqCgkKCQkjIGNyaXRp +Y2FsIGZvciB2YWx1ZXMncyBjb250ZW50cyB0byBiZSByZXNvbHZlZCBpbiB1 +c2VyJ3Mgc2NvcGUKCQlsb2NhbCBAU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Omxv +b3BsaXN0PShAQVJHVik7CgkJbG9jYWwgJFNoZWxsOjpQT1NJWDo6U2VsZWN0 +OjpudW1fdmFsdWVzPUBTaGVsbDo6UE9TSVg6OlNlbGVjdDo6bG9vcGxpc3Q7 +CgoJCSRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6REVCVUcgPiA0IGFuZCBkbyB7 +CgkJCXdhcm4gIkFSUkFZIFZBTFVFUyBBUkU6IEBTaGVsbDo6UE9TSVg6OlNl +bGVjdDo6bG9vcGxpc3RcbiI7CgkJCXdhcm4gIk5VTSBWQUxVRVMgaXMgJFNo +ZWxsOjpQT1NJWDo6U2VsZWN0OjpudW1fdmFsdWVzXG4iOyAKCQkJd2FybiAi +dXNlci1wcm9ncmFtIGRlYnVnIGxldmVsIGlzICRTaGVsbDo6UE9TSVg6OlNl +bGVjdDo6VV9XQVJOXG4iOyAKCQl9OwoJCSA7ICMgTk8gREVDTEFSQVRJT04g +T0YgTE9PUC1WQVIgUkVRVUVTVEVECSMgbG9vcC12YXIgZGVjbGFyYXRpb24g +YXBwZWFycyBoZXJlCgkKICAgIDsKICAgIGxvY2FsICgKCQkJJFNoZWxsOjpQ +T1NJWDo6U2VsZWN0OjpQcm9tcHRbMV0sCgkJCSRTaGVsbDo6UE9TSVg6OlNl +bGVjdDo6bWVudQoJCQkJKSA9CiAgICAgIFNoZWxsOjpQT1NJWDo6U2VsZWN0 +OjptYWtlX21lbnUoCgkJCQkkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OkhlYWRp +bmcgfHwgIiIsCgkJCQkkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlByb21wdCB8 +fCAiIiAsCSMgTWlnaHQgYmUgb3ZlcnJpZGRlbiBpbiBtYWtlX21lbnUKCQkJ +CUBTaGVsbDo6UE9TSVg6OlNlbGVjdDo6bG9vcGxpc3QKCQkJKTsKCgkgIyBu +byBwb2ludCBpbiBwcm9tcHRpbmcgYSBwaXBlIQoJCWxvY2FsICRTaGVsbDo6 +UE9TSVg6OlNlbGVjdDo6ZG9fcHJvbXB0WzFdID0gKC10KSA/ICAxIDogMCA7 +CgkJMCA+IDIgYW5kIHdhcm4gImRvX3Byb21wdCBpcyAkU2hlbGw6OlBPU0lY +OjpTZWxlY3Q6OmRvX3Byb21wdFsxXVxuIjsKICAgIGlmICggZGVmaW5lZCAk +U2hlbGw6OlBPU0lYOjpTZWxlY3Q6Om1lbnUgKSB7ICAgICAgICAgICAgICMg +Tm8gbGlzdCwgbm8gaXRlcmF0aW9ucyEKICAgICAgd2hpbGUgKDEpIHsgICAg +IyBmb3IgcmVwZWF0aW5nIHByb21wdCBmb3Igc2VsZWN0aW9ucwoJCSAjIGxv +Y2FsaXplLCBzbyBJIGRvbid0IGhhdmUgdG8gcmVzZXQgIGZvcgoJCSAjIG91 +dGVyIGxvb3Agb24gZXhpdCBmcm9tIGlubmVyCgkJIGxvY2FsICgkUmVwbHkp +OwogICAgICAgIHdoaWxlICgxKSB7ICAgICMgZm9yIHZhbGlkYXRpbmcgdXNl +cidzIGlucHV0CiAgICAgICAgICBsb2NhbCAkU2hlbGw6OlBPU0lYOjpTZWxl +Y3Q6OmJhZCA9IDA7CgogICAgICAgICAgIyBsb2NhbCBkZWNsIHN1cHByZXNz +ZXMgbmV3bGluZSBvbiBwcm9tcHQgd2hlbiAtbCBzd2l0Y2ggdHVybmVkIG9u +CiAgICAgICAgICB7CiAgICAgICAgICAgIGxvY2FsICRcOwogICAgICAgICAg +ICBpZiAoJFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpkb19wcm9tcHRbMV0pIHsK +CgkJCQkJCQkjIFdoZW4gdHJhbnNmZXJyaW5nIGZyb20gSU5ORVIgdG8gT1VU +RVIgbG9vcCwKCQkJCQkJCSMgZXh0cmEgTkwgYmVmb3JlIHByb21wdCBpcyB2 +aXN1YWxseSBkZXNpcmFibGUKCgkJCQkJCQlpZiAoICRTaGVsbDo6UE9TSVg6 +OlNlbGVjdDo6X2V4dHJhX25sKSB7CgkJCQkJCQkJcHJpbnQgU1RERVJSICJc +blxuIjsKCQkJCQkJCQkkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Ol9leHRyYV9u +bD0wOwoJCQkJCQkJfQoJCQkJCQkJcHJpbnQgU1RERVJSCgkJCQkJCQkJIiRT +aGVsbDo6UE9TSVg6OlNlbGVjdDo6bWVudVxuJFNoZWxsOjpQT1NJWDo6U2Vs +ZWN0OjpQcm9tcHRbMV0gIjsKCQkJCQkJfQogICAgICAgICAgfQoKICAgICAg +ICAgICMJJFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpkb19wcm9tcHQ9MDsKCQkJ +CQkjIGNvbnN0YW50IHByb21wdGluZyBkZXBlbmRzIG9uIHN0eWxlCiAgICAg +ICAgICAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OmRvX3Byb21wdFsxXT0gMDsK +CiAgICAgICAgICBpZiAoICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6ZHVtcF9k +YXRhICkgewoJCQkJCQkkUmVwbHkgPSB1bmRlZjsKCQkJCQkJIyBkdW1wIGZp +bHRlcmVkIHNvdXJjZSBmb3IgY29tcGFyaXNvbiBhZ2FpbnN0IGV4cGVjdGVk +CgkJCQkJCXByaW50IFNUREVSUiAiY29wYWNldGljCiI7CSMgZW5zdXJlIHNv +bWUgb3V0cHV0LCBhbmQgZmx1c2ggcGVuZGluZwoJCQkJCQlleGl0IDIyMjsJ +IyBjb2RlIGZvciBncmFjZWZ1bCwgZXhwZWN0ZWQsIGVhcmx5IGV4aXQKCQkJ +CQl9CiAgICAgICAgICBlbHNlIHsKCQkJCQkJIyAkXlc9MDsKCQkJCQkJIyB3 +YXJuICJXYWl0aW5nIGZvciBpbnB1dCI7CgkJCQkJCQkkRW9mPTA7CgkJCQkJ +CQkkUmVwbHkgPSA8U1RESU4+OwoJCQkJCQkjIHdhcm4gIkdvdCBpbnB1dCI7 +CgkJCQkJCSMgJF5XPTE7CgogICAgICAgICAgICBpZiAoICFkZWZpbmVkKCAk +UmVwbHkgKSApIHsKICAgICAgICAgICAgICBkZWZpbmVkICIiIGFuZCAiIiBu +ZSAiIiBhbmQgcHJpbnQgU1RERVJSICIiOwoKICAgICAgICAgICAgICAjIG5l +ZWQgdG8gdW5kZWYgbG9vcCB2YXI7IHVzZXIgbWF5IGNoZWNrIGl0IQogICAg +ICAgICAgICAgIHVuZGVmICR2YXI7CgogICAgICAgICAgICAgICMgbGFzdCBT +aGVsbDo6UE9TSVg6OlNlbGVjdDo6X1NFTF9MT09QMTsJIyBTeW50YXggZXJy +b3IhCiAgICAgICAgICAgICAgIyBJZiByZXR1cm5pbmcgdG8gb3V0ZXIgbG9v +cCwgc2hvdyB0aGUgcHJvbXB0IGZvciBpdAogICAgICAgICAgICAgICMgd2Fy +biAiVXNlciBoaXQgXkQiOwogICAgICAgICAgICAgIGlmICggMSA+IDEgYW5k +IC10ICkgeyAgICAjIHJlc2V0IHByb21wdGluZyBmb3Igb3V0ZXIgbG9vcAog +ICAgICAgICAgICAgICAgICAgICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6ZG9f +cHJvbXB0WzEtMV0gPSAxOyAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Ol9leHRy +YV9ubD0xOwogICAgICAgICAgICAgIH0KCQkJCQkJCTAgPiAyIGFuZCB3YXJu +ICJMYXN0aW5nIG91dCBvZiBfU0VMX0xPT1AxXG4iOwoJCQkJCQkJJEVvZj0x +OwogICAgICAgICAgICAgIGxhc3QgX1NFTF9MT09QMTsKICAgICAgICAgICAg +fQoJCQkJCQkhZGVmaW5lZCAkUmVwbHkgYW5kIGRpZSAiUkVQTFkgYWNjZXNz +ZWQsIHdoaWxlIHVuZGVmaW5lZCI7CiAgICAgICAgICAgIGNob21wICRSZXBs +eTsKCiAgICAgICAgICAgICMgdW5kbyBlbWJvbGRlbmluZyBvZiB1c2VyIGlu +cHV0CiAgICAgICAgICAgIGRlZmluZWQgIiIgYW5kICIiIG5lICIiIGFuZCBw +cmludCBTVERFUlIgIiI7CgogICAgICAgICAgICAjcHJpbnQgU1RERVJSICIk +U2hlbGw6OlBPU0lYOjpTZWxlY3Q6Om1lbnVcbiRTaGVsbDo6UE9TSVg6OlNl +bGVjdDo6UHJvbXB0ICI7CiAgICAgICAgICAgIGlmICggJFJlcGx5IGVxICIi +ICkgeyAgICAjIGludGVycHJldGVkIGFzIHJlLXByaW50IG1lbnUgcmVxdWVz +dAogICAgICAgICAgICAgICAgICAjIEVtcHR5IGlucHV0IGlzIGxlZ2l0LCBt +ZWFucyByZWRpc3BsYXkgbWVudQogICAgICAgICAgICAgICRTaGVsbDo6UE9T +SVg6OlNlbGVjdDo6VV9XQVJOID4gMSBhbmQgd2FybiAiXHRJTlBVVCBJUzog +ZW1wdHlcbiI7CiAgICAgICAgICAgICAgJFNoZWxsOjpQT1NJWDo6U2VsZWN0 +OjpiYWQgPSAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OmRvX3Byb21wdFsxXSA9 +IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUmVwbHkg +PX4gL1xELyApIHsgICAgIyBzaG91bGRuJ3QgYmUgYW55IG5vbi1kaWdpdCEK +ICAgICAgICAgICAgICAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlVfV0FSTiA+ +IDAKICAgICAgICAgICAgICAgIGFuZCB3YXJuICJcdElOUFVUIENPTlRBSU5T +IE5PTi1ESUdJVDogJyRSZXBseSdcbiI7CiAgICAgICAgICAgICAgJFNoZWxs +OjpQT1NJWDo6U2VsZWN0OjpiYWQgPSAxOyAgICAjIEtvcm4gYW5kIEJhc2gg +c2hlbGwganVzdCBpZ25vcmUgdGhpcyBjYXNlCiAgICAgICAgICAgIH0KICAg +ICAgICAgICAgZWxzaWYgKCAkUmVwbHkgPCAxIG9yICRSZXBseSA+ICRTaGVs +bDo6UE9TSVg6OlNlbGVjdDo6bnVtX3ZhbHVlcyApIHsKICAgICAgICAgICAg +ICAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlVfV0FSTiA+IDAKICAgICAgICAg +ICAgICAgIGFuZCB3YXJuCiAgICAgICAgICAgICAgICAiXHQnJFJlcGx5JyBJ +UyBOT1QgSU4gUkFOR0U6IDEgLSAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Om51 +bV92YWx1ZXNcbiI7CiAgICAgICAgICAgICAgJFNoZWxsOjpQT1NJWDo6U2Vs +ZWN0OjpiYWQgPSAxOyAgICAjIEtvcm4gYW5kIEJhc2ggc2hlbGwganVzdCBp +Z25vcmUgdGhpcyBjYXNlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMg +d2FybiAiQkFEIGlzIG5vdzogJFNoZWxsOjpQT1NJWDo6U2VsZWN0OjpiYWQi +OwogICAgICAgICAgICAgJFNoZWxsOjpQT1NJWDo6U2VsZWN0OjpiYWQgb3IK +CQkJCQkJCSAwID4gMiBhbmQgd2FybiAiQWJvdXQgdG8gbGFzdCBvdXQgb2Yg +UmVwbHkgVmFsaWRhdG9yIExvb3AKIjsKICAgICAgICAgICAgJFNoZWxsOjpQ +T1NJWDo6U2VsZWN0OjpiYWQgb3IgbGFzdDsgICAgIyBSRVBMWSBWQUxJREFU +T1IgRVhJVEVEIEhFUkUKICAgICAgICAgIH0gICAgIyBpZiBmb3IgdmFsaWRh +dGluZyB1c2VyIGlucHV0CiAgICAgICAgfSAgICAjIGluZmluaXRlIHdoaWxl +IGZvciB2YWxpZGF0aW5nIHVzZXIgaW5wdXQKCiAgICAgICAgJHZhciA9ICRT +aGVsbDo6UE9TSVg6OlNlbGVjdDo6bG9vcGxpc3RbJFJlcGx5IC0gMV07ICAg +ICMgc2V0IHVzZXJzJyB2YXJpYWJsZQoKICAgICAgICAjIFVTRVInUyBMT09Q +LUJMT0NLIEJFTE9XCiAgICAgICAgIHByaW50IBwAAAACHDsgOwoKICAgICAg +ICAjIFVTRVInUyBMT09QLUJMT0NLIEFCT1ZFCiAgICAgICAgIyBNYWtpbmcg +c3VyZSB0aGVyZSdzIGNvbG9uIChtYXliZQogICAgICAgICMgZXZlbiB0d28p +IGFmdGVyIGNvZGVzdHJpbmcgYWJvdmUsCiAgICAgICAgIyBpbiBjYXNlIHVz +ZXIgb21pdHRlZCBhZnRlciBsYXN0CiAgICAgICAgIyBzdGF0ZW1lbnQgaW4g +YmxvY2suIEkgbWlnaHQgYWRkCiAgICAgICAgIyBhbm90aGVyIHN0YXRlbWVu +dCBiZWxvdyBpdCBzb21lZGF5IQoJCQkgMCA+IDIgYW5kIHdhcm4gIkF0IGVu +ZCBvZiBwcm9tcHQtcmVwZWF0aW5nIGxvb3AgCiI7CiAgICAgIH0gICAgIyBp +bmZpbml0ZSB3aGlsZSBmb3IgcmVwZWF0aW5nIGNvbGxlY3Rpb24gb2Ygc2Vs +ZWN0aW9ucwoJCQkwIGFuZCB3YXJuICJCRVlPTkQgZW5kIG9mIHByb21wdC1y +ZXBlYXRpbmcgbG9vcCAKIjsKICAgIH0gICAgIyBlbmRpZiAoZGVmaW5lZCAk +U2hlbGw6OlBPU0lYOjpTZWxlY3Q6Om1lbnUpCiAgICBlbHNlIHsKICAgICAg +JFNoZWxsOjpQT1NJWDo6U2VsZWN0OjpERUJVRyA+IDAgYW5kIHdhcm4gIlNo +ZWxsOjpQT1NJWDo6U2VsZWN0OiBTZWxlY3QgTG9vcCAjMSBoYXMgbm8gbGlz +dCwgc28gbm8gaXRlcmF0aW9uc1xuIjsKCgkJCQlpZiAoICRTaGVsbDo6UE9T +SVg6OlNlbGVjdDo6ZHVtcF9kYXRhICkgewoJCQkJCSRSZXBseSA9IHVuZGVm +OwoJCQkJCSMgZHVtcCBmaWx0ZXJlZCBzb3VyY2UgZm9yIGNvbXBhcmlzb24g +YWdhaW5zdCBleHBlY3RlZAoJCQkJCXByaW50IFNUREVSUiAiY29wYWNldGlj +CiI7CSMgZW5zdXJlIHNvbWUgb3V0cHV0LCBhbmQgZmx1c2ggcGVuZGluZwoJ +CQkJCWV4aXQgMjIyOwkjIGNvZGUgZm9yIGdyYWNlZnVsLCBleHBlY3RlZCwg +ZWFybHkgZXhpdAoJCQkJfQogICAgfQoJIyByZXR1cm4gb21pdHRlZCBhYm92 +ZSwgdG8gZ2V0IGxhc3QgZXhwcmVzc2lvbidzIHZhbHVlCgkjIHJldHVybmVk +IGF1dG9tYXRpY2FsbHksIGp1c3QgbGlrZSBzaGVsbCdzIHZlcnNpb24gCgoJ +CgkgIH0gIyAqKioqIEVORCBORVcgU0NPUEUgRk9SIFNFTEVDVExPT1AgIzEg +KioqKgoJfSAjICoqKiogRU5EIFdSQVBQRVIgU0NPUEUgRk9SIFNFTEVDVExP +T1AgIzEgKioqKgoJIyB2aTp0cz0yIHN3PTI6CgkK +==== only in patch2: unchanged: --- libshell-posix-select-perl-0.05.orig/debian/nested_heading_prompt.cdump_ref.b64 +++ libshell-posix-select-perl-0.05/debian/nested_heading_prompt.cdump_ref.b64 @@ -0,0 +1,290 @@ +begin-base64 644 nested_heading_prompt.cdump_ref +CiRIZWFkaW5nPRwAAAAAHDsKJFByb21wdD0cAAAAARw7Ck9VVEVSOgoKCSMg +Q29kZSBnZW5lcmF0ZWQgYnkgU2hlbGw6OlBPU0lYOjpTZWxlY3QgdjAuMDUs +IGJ5IHRpbShBVClUZWFjaE1lUGVybC5jb20KCSMgTk9UQSBCRU5FOiBMaW5l +IDEgb2YgdGhpcyBzZWdtZW50IG11c3Qgc3RhcnQgd2l0aCB7LCBzbyB1c2Vy +IGNhbiBMQUJFTCBpdAogIHsgIyAqKioqIE5FVyBXUkFQUEVSIFNDT1BFIEZP +UiBTRUxFQ1RMT09QICMxICoqKioKCQkkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6 +OkRFQlVHID4gMSBhbmQgMSA9PSAxIGFuZAoJCQl3YXJuICJMSU5FIE5VTUJF +UiBGT1IgU1RBUlQgT0YgVVNFUiBDT0RFX0JMT0NLIElTOiAgIiwgX19MSU5F +X18sICJcbiI7CiAgICBfU0VMX0xPT1AxOiB7ICMgKioqKiBORVcgU0NPUEUg +Rk9SIFNFTEVDVExPT1AgIzEgKioqKgoJCgkJIyBjcml0aWNhbCBmb3IgdmFs +dWVzJ3MgY29udGVudHMgdG8gYmUgcmVzb2x2ZWQgaW4gdXNlcidzIHNjb3Bl +CgkJbG9jYWwgQFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpsb29wbGlzdD0oMS4u +NCk7CgkJbG9jYWwgJFNoZWxsOjpQT1NJWDo6U2VsZWN0OjpudW1fdmFsdWVz +PUBTaGVsbDo6UE9TSVg6OlNlbGVjdDo6bG9vcGxpc3Q7CgoJCSRTaGVsbDo6 +UE9TSVg6OlNlbGVjdDo6REVCVUcgPiA0IGFuZCBkbyB7CgkJCXdhcm4gIkFS +UkFZIFZBTFVFUyBBUkU6IEBTaGVsbDo6UE9TSVg6OlNlbGVjdDo6bG9vcGxp +c3RcbiI7CgkJCXdhcm4gIk5VTSBWQUxVRVMgaXMgJFNoZWxsOjpQT1NJWDo6 +U2VsZWN0OjpudW1fdmFsdWVzXG4iOyAKCQkJd2FybiAidXNlci1wcm9ncmFt +IGRlYnVnIGxldmVsIGlzICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6VV9XQVJO +XG4iOyAKCQl9OwoJCSBteSAgJHF1YW50aXR5OyAgIyBMT09QLVZBUiBERUNM +QVJBVElPTiBSRVFVRVNURUQgKHBlcmhhcHMgYnkgZGVmYXVsdCkJIyBsb29w +LXZhciBkZWNsYXJhdGlvbiBhcHBlYXJzIGhlcmUKCQogICAgOwogICAgbG9j +YWwgKAoJCQkkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlByb21wdFsxXSwKCQkJ +JFNoZWxsOjpQT1NJWDo6U2VsZWN0OjptZW51CgkJCQkpID0KICAgICAgU2hl +bGw6OlBPU0lYOjpTZWxlY3Q6Om1ha2VfbWVudSgKCQkJCSRTaGVsbDo6UE9T +SVg6OlNlbGVjdDo6SGVhZGluZyB8fCAiIiwKCQkJCSRTaGVsbDo6UE9TSVg6 +OlNlbGVjdDo6UHJvbXB0IHx8ICIiICwJIyBNaWdodCBiZSBvdmVycmlkZGVu +IGluIG1ha2VfbWVudQoJCQkJQFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpsb29w +bGlzdAoJCQkpOwoKCSAjIG5vIHBvaW50IGluIHByb21wdGluZyBhIHBpcGUh +CgkJbG9jYWwgJFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpkb19wcm9tcHRbMV0g +PSAoLXQpID8gIDEgOiAwIDsKCQkwID4gMiBhbmQgd2FybiAiZG9fcHJvbXB0 +IGlzICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6ZG9fcHJvbXB0WzFdXG4iOwog +ICAgaWYgKCBkZWZpbmVkICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6bWVudSAp +IHsgICAgICAgICAgICAgIyBObyBsaXN0LCBubyBpdGVyYXRpb25zIQogICAg +ICB3aGlsZSAoMSkgeyAgICAjIGZvciByZXBlYXRpbmcgcHJvbXB0IGZvciBz +ZWxlY3Rpb25zCgkJICMgbG9jYWxpemUsIHNvIEkgZG9uJ3QgaGF2ZSB0byBy +ZXNldCAgZm9yCgkJICMgb3V0ZXIgbG9vcCBvbiBleGl0IGZyb20gaW5uZXIK +CQkgbG9jYWwgKCRSZXBseSk7CiAgICAgICAgd2hpbGUgKDEpIHsgICAgIyBm +b3IgdmFsaWRhdGluZyB1c2VyJ3MgaW5wdXQKICAgICAgICAgIGxvY2FsICRT +aGVsbDo6UE9TSVg6OlNlbGVjdDo6YmFkID0gMDsKCiAgICAgICAgICAjIGxv +Y2FsIGRlY2wgc3VwcHJlc3NlcyBuZXdsaW5lIG9uIHByb21wdCB3aGVuIC1s +IHN3aXRjaCB0dXJuZWQgb24KICAgICAgICAgIHsKICAgICAgICAgICAgbG9j +YWwgJFw7CiAgICAgICAgICAgIGlmICgkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6 +OmRvX3Byb21wdFsxXSkgewoKCQkJCQkJCSMgV2hlbiB0cmFuc2ZlcnJpbmcg +ZnJvbSBJTk5FUiB0byBPVVRFUiBsb29wLAoJCQkJCQkJIyBleHRyYSBOTCBi +ZWZvcmUgcHJvbXB0IGlzIHZpc3VhbGx5IGRlc2lyYWJsZQoKCQkJCQkJCWlm +ICggJFNoZWxsOjpQT1NJWDo6U2VsZWN0OjpfZXh0cmFfbmwpIHsKCQkJCQkJ +CQlwcmludCBTVERFUlIgIlxuXG4iOwoJCQkJCQkJCSRTaGVsbDo6UE9TSVg6 +OlNlbGVjdDo6X2V4dHJhX25sPTA7CgkJCQkJCQl9CgkJCQkJCQlwcmludCBT +VERFUlIKCQkJCQkJCQkiJFNoZWxsOjpQT1NJWDo6U2VsZWN0OjptZW51XG4k +U2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlByb21wdFsxXSAiOwoJCQkJCQl9CiAg +ICAgICAgICB9CgogICAgICAgICAgIwkkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6 +OmRvX3Byb21wdD0wOwoJCQkJCSMgY29uc3RhbnQgcHJvbXB0aW5nIGRlcGVu +ZHMgb24gc3R5bGUKICAgICAgICAgICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6 +ZG9fcHJvbXB0WzFdPSAwOwoKICAgICAgICAgIGlmICggJFNoZWxsOjpQT1NJ +WDo6U2VsZWN0OjpkdW1wX2RhdGEgKSB7CgkJCQkJCSRSZXBseSA9IHVuZGVm +OwoJCQkJCQkjIGR1bXAgZmlsdGVyZWQgc291cmNlIGZvciBjb21wYXJpc29u +IGFnYWluc3QgZXhwZWN0ZWQKCQkJCQkJcHJpbnQgU1RERVJSICJjb3BhY2V0 +aWMKIjsJIyBlbnN1cmUgc29tZSBvdXRwdXQsIGFuZCBmbHVzaCBwZW5kaW5n +CgkJCQkJCWV4aXQgMjIyOwkjIGNvZGUgZm9yIGdyYWNlZnVsLCBleHBlY3Rl +ZCwgZWFybHkgZXhpdAoJCQkJCX0KICAgICAgICAgIGVsc2UgewoJCQkJCQkj +ICReVz0wOwoJCQkJCQkjIHdhcm4gIldhaXRpbmcgZm9yIGlucHV0IjsKCQkJ +CQkJCSRFb2Y9MDsKCQkJCQkJCSRSZXBseSA9IDxTVERJTj47CgkJCQkJCSMg +d2FybiAiR290IGlucHV0IjsKCQkJCQkJIyAkXlc9MTsKCiAgICAgICAgICAg +IGlmICggIWRlZmluZWQoICRSZXBseSApICkgewogICAgICAgICAgICAgIGRl +ZmluZWQgIiIgYW5kICIiIG5lICIiIGFuZCBwcmludCBTVERFUlIgIiI7Cgog +ICAgICAgICAgICAgICMgbmVlZCB0byB1bmRlZiBsb29wIHZhcjsgdXNlciBt +YXkgY2hlY2sgaXQhCiAgICAgICAgICAgICAgdW5kZWYgJHF1YW50aXR5OwoK +ICAgICAgICAgICAgICAjIGxhc3QgU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Ol9T +RUxfTE9PUDE7CSMgU3ludGF4IGVycm9yIQogICAgICAgICAgICAgICMgSWYg +cmV0dXJuaW5nIHRvIG91dGVyIGxvb3AsIHNob3cgdGhlIHByb21wdCBmb3Ig +aXQKICAgICAgICAgICAgICAjIHdhcm4gIlVzZXIgaGl0IF5EIjsKICAgICAg +ICAgICAgICBpZiAoIDEgPiAxIGFuZCAtdCApIHsgICAgIyByZXNldCBwcm9t +cHRpbmcgZm9yIG91dGVyIGxvb3AKICAgICAgICAgICAgICAgICAgICAkU2hl +bGw6OlBPU0lYOjpTZWxlY3Q6OmRvX3Byb21wdFsxLTFdID0gMTsgJFNoZWxs +OjpQT1NJWDo6U2VsZWN0OjpfZXh0cmFfbmw9MTsKICAgICAgICAgICAgICB9 +CgkJCQkJCQkwID4gMiBhbmQgd2FybiAiTGFzdGluZyBvdXQgb2YgX1NFTF9M +T09QMVxuIjsKCQkJCQkJCSRFb2Y9MTsKICAgICAgICAgICAgICBsYXN0IF9T +RUxfTE9PUDE7CiAgICAgICAgICAgIH0KCQkJCQkJIWRlZmluZWQgJFJlcGx5 +IGFuZCBkaWUgIlJFUExZIGFjY2Vzc2VkLCB3aGlsZSB1bmRlZmluZWQiOwog +ICAgICAgICAgICBjaG9tcCAkUmVwbHk7CgogICAgICAgICAgICAjIHVuZG8g +ZW1ib2xkZW5pbmcgb2YgdXNlciBpbnB1dAogICAgICAgICAgICBkZWZpbmVk +ICIiIGFuZCAiIiBuZSAiIiBhbmQgcHJpbnQgU1RERVJSICIiOwoKICAgICAg +ICAgICAgI3ByaW50IFNUREVSUiAiJFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpt +ZW51XG4kU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlByb21wdCAiOwogICAgICAg +ICAgICBpZiAoICRSZXBseSBlcSAiIiApIHsgICAgIyBpbnRlcnByZXRlZCBh +cyByZS1wcmludCBtZW51IHJlcXVlc3QKICAgICAgICAgICAgICAgICAgIyBF +bXB0eSBpbnB1dCBpcyBsZWdpdCwgbWVhbnMgcmVkaXNwbGF5IG1lbnUKICAg +ICAgICAgICAgICAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlVfV0FSTiA+IDEg +YW5kIHdhcm4gIlx0SU5QVVQgSVM6IGVtcHR5XG4iOwogICAgICAgICAgICAg +ICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6YmFkID0gJFNoZWxsOjpQT1NJWDo6 +U2VsZWN0Ojpkb19wcm9tcHRbMV0gPSAxOwogICAgICAgICAgICB9CiAgICAg +ICAgICAgIGVsc2lmICggJFJlcGx5ID1+IC9cRC8gKSB7ICAgICMgc2hvdWxk +bid0IGJlIGFueSBub24tZGlnaXQhCiAgICAgICAgICAgICAgJFNoZWxsOjpQ +T1NJWDo6U2VsZWN0OjpVX1dBUk4gPiAwCiAgICAgICAgICAgICAgICBhbmQg +d2FybiAiXHRJTlBVVCBDT05UQUlOUyBOT04tRElHSVQ6ICckUmVwbHknXG4i +OwogICAgICAgICAgICAgICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6YmFkID0g +MTsgICAgIyBLb3JuIGFuZCBCYXNoIHNoZWxsIGp1c3QgaWdub3JlIHRoaXMg +Y2FzZQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJFJlcGx5 +IDwgMSBvciAkUmVwbHkgPiAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Om51bV92 +YWx1ZXMgKSB7CiAgICAgICAgICAgICAgJFNoZWxsOjpQT1NJWDo6U2VsZWN0 +OjpVX1dBUk4gPiAwCiAgICAgICAgICAgICAgICBhbmQgd2FybgogICAgICAg +ICAgICAgICAgIlx0JyRSZXBseScgSVMgTk9UIElOIFJBTkdFOiAxIC0gJFNo +ZWxsOjpQT1NJWDo6U2VsZWN0OjpudW1fdmFsdWVzXG4iOwogICAgICAgICAg +ICAgICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6YmFkID0gMTsgICAgIyBLb3Ju +IGFuZCBCYXNoIHNoZWxsIGp1c3QgaWdub3JlIHRoaXMgY2FzZQogICAgICAg +ICAgICB9CgogICAgICAgICAgICAjIHdhcm4gIkJBRCBpcyBub3c6ICRTaGVs +bDo6UE9TSVg6OlNlbGVjdDo6YmFkIjsKICAgICAgICAgICAgICRTaGVsbDo6 +UE9TSVg6OlNlbGVjdDo6YmFkIG9yCgkJCQkJCQkgMCA+IDIgYW5kIHdhcm4g +IkFib3V0IHRvIGxhc3Qgb3V0IG9mIFJlcGx5IFZhbGlkYXRvciBMb29wCiI7 +CiAgICAgICAgICAgICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6YmFkIG9yIGxh +c3Q7ICAgICMgUkVQTFkgVkFMSURBVE9SIEVYSVRFRCBIRVJFCiAgICAgICAg +ICB9ICAgICMgaWYgZm9yIHZhbGlkYXRpbmcgdXNlciBpbnB1dAogICAgICAg +IH0gICAgIyBpbmZpbml0ZSB3aGlsZSBmb3IgdmFsaWRhdGluZyB1c2VyIGlu +cHV0CgogICAgICAgICRxdWFudGl0eSA9ICRTaGVsbDo6UE9TSVg6OlNlbGVj +dDo6bG9vcGxpc3RbJFJlcGx5IC0gMV07ICAgICMgc2V0IHVzZXJzJyB2YXJp +YWJsZQoKICAgICAgICAjIFVTRVInUyBMT09QLUJMT0NLIEJFTE9XCiAgICAg +ICAgCiMJd2FybiAiaW5zaWRlIE91dGVyIGxvb3BcbiI7CgoJJEhlYWRpbmc9 +HAAAAAIcOwoJJFByb21wdD0cAAAAAxw7CgkKCSMgQ29kZSBnZW5lcmF0ZWQg +YnkgU2hlbGw6OlBPU0lYOjpTZWxlY3QgdjAuMDUsIGJ5IHRpbShBVClUZWFj +aE1lUGVybC5jb20KCSMgTk9UQSBCRU5FOiBMaW5lIDEgb2YgdGhpcyBzZWdt +ZW50IG11c3Qgc3RhcnQgd2l0aCB7LCBzbyB1c2VyIGNhbiBMQUJFTCBpdAog +IHsgIyAqKioqIE5FVyBXUkFQUEVSIFNDT1BFIEZPUiBTRUxFQ1RMT09QICMy +ICoqKioKCQkkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OkRFQlVHID4gMSBhbmQg +MiA9PSAxIGFuZAoJCQl3YXJuICJMSU5FIE5VTUJFUiBGT1IgU1RBUlQgT0Yg +VVNFUiBDT0RFX0JMT0NLIElTOiAgIiwgX19MSU5FX18sICJcbiI7CiAgICBf +U0VMX0xPT1AyOiB7ICMgKioqKiBORVcgU0NPUEUgRk9SIFNFTEVDVExPT1Ag +IzIgKioqKgoJCgkJIyBjcml0aWNhbCBmb3IgdmFsdWVzJ3MgY29udGVudHMg +dG8gYmUgcmVzb2x2ZWQgaW4gdXNlcidzIHNjb3BlCgkJbG9jYWwgQFNoZWxs +OjpQT1NJWDo6U2VsZWN0Ojpsb29wbGlzdD0oIBwAAAAEHCApOwoJCWxvY2Fs +ICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6bnVtX3ZhbHVlcz1AU2hlbGw6OlBP +U0lYOjpTZWxlY3Q6Omxvb3BsaXN0OwoKCQkkU2hlbGw6OlBPU0lYOjpTZWxl +Y3Q6OkRFQlVHID4gNCBhbmQgZG8gewoJCQl3YXJuICJBUlJBWSBWQUxVRVMg +QVJFOiBAU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Omxvb3BsaXN0XG4iOwoJCQl3 +YXJuICJOVU0gVkFMVUVTIGlzICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6bnVt +X3ZhbHVlc1xuIjsgCgkJCXdhcm4gInVzZXItcHJvZ3JhbSBkZWJ1ZyBsZXZl +bCBpcyAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlVfV0FSTlxuIjsgCgkJfTsK +CQkgbXkgICRzaXplOyAgIyBMT09QLVZBUiBERUNMQVJBVElPTiBSRVFVRVNU +RUQgKHBlcmhhcHMgYnkgZGVmYXVsdCkJIyBsb29wLXZhciBkZWNsYXJhdGlv +biBhcHBlYXJzIGhlcmUKCQogICAgOwogICAgbG9jYWwgKAoJCQkkU2hlbGw6 +OlBPU0lYOjpTZWxlY3Q6OlByb21wdFsyXSwKCQkJJFNoZWxsOjpQT1NJWDo6 +U2VsZWN0OjptZW51CgkJCQkpID0KICAgICAgU2hlbGw6OlBPU0lYOjpTZWxl +Y3Q6Om1ha2VfbWVudSgKCQkJCSRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6SGVh +ZGluZyB8fCAiIiwKCQkJCSRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6UHJvbXB0 +IHx8ICIiICwJIyBNaWdodCBiZSBvdmVycmlkZGVuIGluIG1ha2VfbWVudQoJ +CQkJQFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpsb29wbGlzdAoJCQkpOwoKCSAj +IG5vIHBvaW50IGluIHByb21wdGluZyBhIHBpcGUhCgkJbG9jYWwgJFNoZWxs +OjpQT1NJWDo6U2VsZWN0Ojpkb19wcm9tcHRbMl0gPSAoLXQpID8gIDEgOiAw +IDsKCQkwID4gMiBhbmQgd2FybiAiZG9fcHJvbXB0IGlzICRTaGVsbDo6UE9T +SVg6OlNlbGVjdDo6ZG9fcHJvbXB0WzJdXG4iOwogICAgaWYgKCBkZWZpbmVk +ICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6bWVudSApIHsgICAgICAgICAgICAg +IyBObyBsaXN0LCBubyBpdGVyYXRpb25zIQogICAgICB3aGlsZSAoMSkgeyAg +ICAjIGZvciByZXBlYXRpbmcgcHJvbXB0IGZvciBzZWxlY3Rpb25zCgkJICMg +bG9jYWxpemUsIHNvIEkgZG9uJ3QgaGF2ZSB0byByZXNldCAgZm9yCgkJICMg +b3V0ZXIgbG9vcCBvbiBleGl0IGZyb20gaW5uZXIKCQkgbG9jYWwgKCRSZXBs +eSk7CiAgICAgICAgd2hpbGUgKDEpIHsgICAgIyBmb3IgdmFsaWRhdGluZyB1 +c2VyJ3MgaW5wdXQKICAgICAgICAgIGxvY2FsICRTaGVsbDo6UE9TSVg6OlNl +bGVjdDo6YmFkID0gMDsKCiAgICAgICAgICAjIGxvY2FsIGRlY2wgc3VwcHJl +c3NlcyBuZXdsaW5lIG9uIHByb21wdCB3aGVuIC1sIHN3aXRjaCB0dXJuZWQg +b24KICAgICAgICAgIHsKICAgICAgICAgICAgbG9jYWwgJFw7CiAgICAgICAg +ICAgIGlmICgkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OmRvX3Byb21wdFsyXSkg +ewoKCQkJCQkJCSMgV2hlbiB0cmFuc2ZlcnJpbmcgZnJvbSBJTk5FUiB0byBP +VVRFUiBsb29wLAoJCQkJCQkJIyBleHRyYSBOTCBiZWZvcmUgcHJvbXB0IGlz +IHZpc3VhbGx5IGRlc2lyYWJsZQoKCQkJCQkJCWlmICggJFNoZWxsOjpQT1NJ +WDo6U2VsZWN0OjpfZXh0cmFfbmwpIHsKCQkJCQkJCQlwcmludCBTVERFUlIg +IlxuXG4iOwoJCQkJCQkJCSRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6X2V4dHJh +X25sPTA7CgkJCQkJCQl9CgkJCQkJCQlwcmludCBTVERFUlIKCQkJCQkJCQki +JFNoZWxsOjpQT1NJWDo6U2VsZWN0OjptZW51XG4kU2hlbGw6OlBPU0lYOjpT +ZWxlY3Q6OlByb21wdFsyXSAiOwoJCQkJCQl9CiAgICAgICAgICB9CgogICAg +ICAgICAgIwkkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OmRvX3Byb21wdD0wOwoJ +CQkJCSMgY29uc3RhbnQgcHJvbXB0aW5nIGRlcGVuZHMgb24gc3R5bGUKICAg +ICAgICAgICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6ZG9fcHJvbXB0WzJdPSAw +OwoKICAgICAgICAgIGlmICggJFNoZWxsOjpQT1NJWDo6U2VsZWN0OjpkdW1w +X2RhdGEgKSB7CgkJCQkJCSRSZXBseSA9IHVuZGVmOwoJCQkJCQkjIGR1bXAg +ZmlsdGVyZWQgc291cmNlIGZvciBjb21wYXJpc29uIGFnYWluc3QgZXhwZWN0 +ZWQKCQkJCQkJcHJpbnQgU1RERVJSICJjb3BhY2V0aWMKIjsJIyBlbnN1cmUg +c29tZSBvdXRwdXQsIGFuZCBmbHVzaCBwZW5kaW5nCgkJCQkJCWV4aXQgMjIy +OwkjIGNvZGUgZm9yIGdyYWNlZnVsLCBleHBlY3RlZCwgZWFybHkgZXhpdAoJ +CQkJCX0KICAgICAgICAgIGVsc2UgewoJCQkJCQkjICReVz0wOwoJCQkJCQkj +IHdhcm4gIldhaXRpbmcgZm9yIGlucHV0IjsKCQkJCQkJCSRFb2Y9MDsKCQkJ +CQkJCSRSZXBseSA9IDxTVERJTj47CgkJCQkJCSMgd2FybiAiR290IGlucHV0 +IjsKCQkJCQkJIyAkXlc9MTsKCiAgICAgICAgICAgIGlmICggIWRlZmluZWQo +ICRSZXBseSApICkgewogICAgICAgICAgICAgIGRlZmluZWQgIiIgYW5kICIi +IG5lICIiIGFuZCBwcmludCBTVERFUlIgIiI7CgogICAgICAgICAgICAgICMg +bmVlZCB0byB1bmRlZiBsb29wIHZhcjsgdXNlciBtYXkgY2hlY2sgaXQhCiAg +ICAgICAgICAgICAgdW5kZWYgJHNpemU7CgogICAgICAgICAgICAgICMgbGFz +dCBTaGVsbDo6UE9TSVg6OlNlbGVjdDo6X1NFTF9MT09QMjsJIyBTeW50YXgg +ZXJyb3IhCiAgICAgICAgICAgICAgIyBJZiByZXR1cm5pbmcgdG8gb3V0ZXIg +bG9vcCwgc2hvdyB0aGUgcHJvbXB0IGZvciBpdAogICAgICAgICAgICAgICMg +d2FybiAiVXNlciBoaXQgXkQiOwogICAgICAgICAgICAgIGlmICggMiA+IDEg +YW5kIC10ICkgeyAgICAjIHJlc2V0IHByb21wdGluZyBmb3Igb3V0ZXIgbG9v +cAogICAgICAgICAgICAgICAgICAgICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6 +ZG9fcHJvbXB0WzItMV0gPSAxOyAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Ol9l +eHRyYV9ubD0xOwogICAgICAgICAgICAgIH0KCQkJCQkJCTAgPiAyIGFuZCB3 +YXJuICJMYXN0aW5nIG91dCBvZiBfU0VMX0xPT1AyXG4iOwoJCQkJCQkJJEVv +Zj0xOwogICAgICAgICAgICAgIGxhc3QgX1NFTF9MT09QMjsKICAgICAgICAg +ICAgfQoJCQkJCQkhZGVmaW5lZCAkUmVwbHkgYW5kIGRpZSAiUkVQTFkgYWNj +ZXNzZWQsIHdoaWxlIHVuZGVmaW5lZCI7CiAgICAgICAgICAgIGNob21wICRS +ZXBseTsKCiAgICAgICAgICAgICMgdW5kbyBlbWJvbGRlbmluZyBvZiB1c2Vy +IGlucHV0CiAgICAgICAgICAgIGRlZmluZWQgIiIgYW5kICIiIG5lICIiIGFu +ZCBwcmludCBTVERFUlIgIiI7CgogICAgICAgICAgICAjcHJpbnQgU1RERVJS +ICIkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Om1lbnVcbiRTaGVsbDo6UE9TSVg6 +OlNlbGVjdDo6UHJvbXB0ICI7CiAgICAgICAgICAgIGlmICggJFJlcGx5IGVx +ICIiICkgeyAgICAjIGludGVycHJldGVkIGFzIHJlLXByaW50IG1lbnUgcmVx +dWVzdAogICAgICAgICAgICAgICAgICAjIEVtcHR5IGlucHV0IGlzIGxlZ2l0 +LCBtZWFucyByZWRpc3BsYXkgbWVudQogICAgICAgICAgICAgICRTaGVsbDo6 +UE9TSVg6OlNlbGVjdDo6VV9XQVJOID4gMSBhbmQgd2FybiAiXHRJTlBVVCBJ +UzogZW1wdHlcbiI7CiAgICAgICAgICAgICAgJFNoZWxsOjpQT1NJWDo6U2Vs +ZWN0OjpiYWQgPSAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OmRvX3Byb21wdFsy +XSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkUmVw +bHkgPX4gL1xELyApIHsgICAgIyBzaG91bGRuJ3QgYmUgYW55IG5vbi1kaWdp +dCEKICAgICAgICAgICAgICAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlVfV0FS +TiA+IDAKICAgICAgICAgICAgICAgIGFuZCB3YXJuICJcdElOUFVUIENPTlRB +SU5TIE5PTi1ESUdJVDogJyRSZXBseSdcbiI7CiAgICAgICAgICAgICAgJFNo +ZWxsOjpQT1NJWDo6U2VsZWN0OjpiYWQgPSAxOyAgICAjIEtvcm4gYW5kIEJh +c2ggc2hlbGwganVzdCBpZ25vcmUgdGhpcyBjYXNlCiAgICAgICAgICAgIH0K +ICAgICAgICAgICAgZWxzaWYgKCAkUmVwbHkgPCAxIG9yICRSZXBseSA+ICRT +aGVsbDo6UE9TSVg6OlNlbGVjdDo6bnVtX3ZhbHVlcyApIHsKICAgICAgICAg +ICAgICAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6OlVfV0FSTiA+IDAKICAgICAg +ICAgICAgICAgIGFuZCB3YXJuCiAgICAgICAgICAgICAgICAiXHQnJFJlcGx5 +JyBJUyBOT1QgSU4gUkFOR0U6IDEgLSAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6 +Om51bV92YWx1ZXNcbiI7CiAgICAgICAgICAgICAgJFNoZWxsOjpQT1NJWDo6 +U2VsZWN0OjpiYWQgPSAxOyAgICAjIEtvcm4gYW5kIEJhc2ggc2hlbGwganVz +dCBpZ25vcmUgdGhpcyBjYXNlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAg +ICMgd2FybiAiQkFEIGlzIG5vdzogJFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpi +YWQiOwogICAgICAgICAgICAgJFNoZWxsOjpQT1NJWDo6U2VsZWN0OjpiYWQg +b3IKCQkJCQkJCSAwID4gMiBhbmQgd2FybiAiQWJvdXQgdG8gbGFzdCBvdXQg +b2YgUmVwbHkgVmFsaWRhdG9yIExvb3AKIjsKICAgICAgICAgICAgJFNoZWxs +OjpQT1NJWDo6U2VsZWN0OjpiYWQgb3IgbGFzdDsgICAgIyBSRVBMWSBWQUxJ +REFUT1IgRVhJVEVEIEhFUkUKICAgICAgICAgIH0gICAgIyBpZiBmb3IgdmFs +aWRhdGluZyB1c2VyIGlucHV0CiAgICAgICAgfSAgICAjIGluZmluaXRlIHdo +aWxlIGZvciB2YWxpZGF0aW5nIHVzZXIgaW5wdXQKCiAgICAgICAgJHNpemUg +PSAkU2hlbGw6OlBPU0lYOjpTZWxlY3Q6Omxvb3BsaXN0WyRSZXBseSAtIDFd +OyAgICAjIHNldCB1c2VycycgdmFyaWFibGUKCiAgICAgICAgIyBVU0VSJ1Mg +TE9PUC1CTE9DSyBCRUxPVwogICAgICAgIAojCQl3YXJuICJpbnNpZGUgSW5u +ZXIgbG9vcFxuIjsKCQlwcmludCAcAAAABRw7CgkJbGFzdCBPVVRFUjsKCTsK +CiAgICAgICAgIyBVU0VSJ1MgTE9PUC1CTE9DSyBBQk9WRQogICAgICAgICMg +TWFraW5nIHN1cmUgdGhlcmUncyBjb2xvbiAobWF5YmUKICAgICAgICAjIGV2 +ZW4gdHdvKSBhZnRlciBjb2Rlc3RyaW5nIGFib3ZlLAogICAgICAgICMgaW4g +Y2FzZSB1c2VyIG9taXR0ZWQgYWZ0ZXIgbGFzdAogICAgICAgICMgc3RhdGVt +ZW50IGluIGJsb2NrLiBJIG1pZ2h0IGFkZAogICAgICAgICMgYW5vdGhlciBz +dGF0ZW1lbnQgYmVsb3cgaXQgc29tZWRheSEKCQkJIDAgPiAyIGFuZCB3YXJu +ICJBdCBlbmQgb2YgcHJvbXB0LXJlcGVhdGluZyBsb29wIAoiOwogICAgICB9 +ICAgICMgaW5maW5pdGUgd2hpbGUgZm9yIHJlcGVhdGluZyBjb2xsZWN0aW9u +IG9mIHNlbGVjdGlvbnMKCQkJMCBhbmQgd2FybiAiQkVZT05EIGVuZCBvZiBw +cm9tcHQtcmVwZWF0aW5nIGxvb3AgCiI7CiAgICB9ICAgICMgZW5kaWYgKGRl +ZmluZWQgJFNoZWxsOjpQT1NJWDo6U2VsZWN0OjptZW51KQogICAgZWxzZSB7 +CiAgICAgICRTaGVsbDo6UE9TSVg6OlNlbGVjdDo6REVCVUcgPiAwIGFuZCB3 +YXJuICJTaGVsbDo6UE9TSVg6OlNlbGVjdDogU2VsZWN0IExvb3AgIzIgaGFz +IG5vIGxpc3QsIHNvIG5vIGl0ZXJhdGlvbnNcbiI7CgoJCQkJaWYgKCAkU2hl +bGw6OlBPU0lYOjpTZWxlY3Q6OmR1bXBfZGF0YSApIHsKCQkJCQkkUmVwbHkg +PSB1bmRlZjsKCQkJCQkjIGR1bXAgZmlsdGVyZWQgc291cmNlIGZvciBjb21w +YXJpc29uIGFnYWluc3QgZXhwZWN0ZWQKCQkJCQlwcmludCBTVERFUlIgImNv +cGFjZXRpYwoiOwkjIGVuc3VyZSBzb21lIG91dHB1dCwgYW5kIGZsdXNoIHBl +bmRpbmcKCQkJCQlleGl0IDIyMjsJIyBjb2RlIGZvciBncmFjZWZ1bCwgZXhw +ZWN0ZWQsIGVhcmx5IGV4aXQKCQkJCX0KICAgIH0KCSMgcmV0dXJuIG9taXR0 +ZWQgYWJvdmUsIHRvIGdldCBsYXN0IGV4cHJlc3Npb24ncyB2YWx1ZQoJIyBy +ZXR1cm5lZCBhdXRvbWF0aWNhbGx5LCBqdXN0IGxpa2Ugc2hlbGwncyB2ZXJz +aW9uIAoKCQoJICB9ICMgKioqKiBFTkQgTkVXIFNDT1BFIEZPUiBTRUxFQ1RM +T09QICMyICoqKioKCX0gIyAqKioqIEVORCBXUkFQUEVSIFNDT1BFIEZPUiBT +RUxFQ1RMT09QICMyICoqKioKCSMgdmk6dHM9MiBzdz0yOgoJCiMJd2FybiAi +b3V0c2lkZSBJbm5lciBsb29wXG4iOwo7CgogICAgICAgICMgVVNFUidTIExP +T1AtQkxPQ0sgQUJPVkUKICAgICAgICAjIE1ha2luZyBzdXJlIHRoZXJlJ3Mg +Y29sb24gKG1heWJlCiAgICAgICAgIyBldmVuIHR3bykgYWZ0ZXIgY29kZXN0 +cmluZyBhYm92ZSwKICAgICAgICAjIGluIGNhc2UgdXNlciBvbWl0dGVkIGFm +dGVyIGxhc3QKICAgICAgICAjIHN0YXRlbWVudCBpbiBibG9jay4gSSBtaWdo +dCBhZGQKICAgICAgICAjIGFub3RoZXIgc3RhdGVtZW50IGJlbG93IGl0IHNv +bWVkYXkhCgkJCSAwID4gMiBhbmQgd2FybiAiQXQgZW5kIG9mIHByb21wdC1y +ZXBlYXRpbmcgbG9vcCAKIjsKICAgICAgfSAgICAjIGluZmluaXRlIHdoaWxl +IGZvciByZXBlYXRpbmcgY29sbGVjdGlvbiBvZiBzZWxlY3Rpb25zCgkJCTAg +YW5kIHdhcm4gIkJFWU9ORCBlbmQgb2YgcHJvbXB0LXJlcGVhdGluZyBsb29w +IAoiOwogICAgfSAgICAjIGVuZGlmIChkZWZpbmVkICRTaGVsbDo6UE9TSVg6 +OlNlbGVjdDo6bWVudSkKICAgIGVsc2UgewogICAgICAkU2hlbGw6OlBPU0lY +OjpTZWxlY3Q6OkRFQlVHID4gMCBhbmQgd2FybiAiU2hlbGw6OlBPU0lYOjpT +ZWxlY3Q6IFNlbGVjdCBMb29wICMxIGhhcyBubyBsaXN0LCBzbyBubyBpdGVy +YXRpb25zXG4iOwoKCQkJCWlmICggJFNoZWxsOjpQT1NJWDo6U2VsZWN0Ojpk +dW1wX2RhdGEgKSB7CgkJCQkJJFJlcGx5ID0gdW5kZWY7CgkJCQkJIyBkdW1w +IGZpbHRlcmVkIHNvdXJjZSBmb3IgY29tcGFyaXNvbiBhZ2FpbnN0IGV4cGVj +dGVkCgkJCQkJcHJpbnQgU1RERVJSICJjb3BhY2V0aWMKIjsJIyBlbnN1cmUg +c29tZSBvdXRwdXQsIGFuZCBmbHVzaCBwZW5kaW5nCgkJCQkJZXhpdCAyMjI7 +CSMgY29kZSBmb3IgZ3JhY2VmdWwsIGV4cGVjdGVkLCBlYXJseSBleGl0CgkJ +CQl9CiAgICB9CgkjIHJldHVybiBvbWl0dGVkIGFib3ZlLCB0byBnZXQgbGFz +dCBleHByZXNzaW9uJ3MgdmFsdWUKCSMgcmV0dXJuZWQgYXV0b21hdGljYWxs +eSwganVzdCBsaWtlIHNoZWxsJ3MgdmVyc2lvbiAKCgkKCSAgfSAjICoqKiog +RU5EIE5FVyBTQ09QRSBGT1IgU0VMRUNUTE9PUCAjMSAqKioqCgl9ICMgKioq +KiBFTkQgV1JBUFBFUiBTQ09QRSBGT1IgU0VMRUNUTE9PUCAjMSAqKioqCgkj +IHZpOnRzPTIgc3c9MjoKCQojd2FybiAib3V0c2lkZSBhbGwgbG9vcHNcbiI7 +Cg== +====