From: Ashish Agarwal Date: May 28 2012 9:24am Subject: bzr push into mysql-trunk branch (ashish.y.agarwal:3906 to 3907) WL#2739 List-Archive: http://lists.mysql.com/commits/143978 Message-Id: <201205280924.q4S9Ok1a030331@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDM5MDcgQXNoaXNoIEFnYXJ3YWwJMjAxMi0wNS0yOCBbbWVyZ2VdCiAgICAgIHdsIzI3Mzk6IEF1 ZGl0aW5nIFBhc3N3b3JkIFNlY3VyaXR5CiAgICAgICAgICAgICAgIG1lcmdpbmcgZnJvbSBteXNx bC10cnVuay13bDI3MzkKICAgICAgICAgICAgICAgdG8gbXlzcWwtdHJ1bmsKCiAgICBhZGRlZDoK ICAgICAgaW5jbHVkZS9teXNxbC9wbHVnaW5fdmFsaWRhdGVfcGFzc3dvcmQuaAogICAgICBpbmNs dWRlL215c3FsL3NlcnZpY2VfbXlzcWxfc3RyaW5nLmgKICAgICAgbGlic2VydmljZXMvbXlzcWxf c3RyaW5nX3NlcnZpY2UuYwogICAgICBteXNxbC10ZXN0L2luY2x1ZGUvaGF2ZV92YWxpZGF0ZV9w YXNzd29yZF9wbHVnaW4uaW5jCiAgICAgIG15c3FsLXRlc3Qvci92YWxpZGF0ZV9wYXNzd29yZF9w bHVnaW4ucmVzdWx0CiAgICAgIG15c3FsLXRlc3QvdC92YWxpZGF0ZV9wYXNzd29yZF9wbHVnaW4t bWFzdGVyLm9wdAogICAgICBteXNxbC10ZXN0L3QvdmFsaWRhdGVfcGFzc3dvcmRfcGx1Z2luLnRl c3QKICAgICAgcGx1Z2luL3Bhc3N3b3JkX3ZhbGlkYXRpb24vCiAgICAgIHBsdWdpbi9wYXNzd29y ZF92YWxpZGF0aW9uL0NNYWtlTGlzdHMudHh0CiAgICAgIHBsdWdpbi9wYXNzd29yZF92YWxpZGF0 aW9uL3ZhbGlkYXRlX3Bhc3N3b3JkLmNjCiAgICAgIHNxbC9zaGFyZS9kaWN0aW9uYXJ5LnR4dAog ICAgICBzcWwvc3RyaW5nX3NlcnZpY2UuY2MKICAgICAgc3FsL3N0cmluZ19zZXJ2aWNlLmgKICAg IG1vZGlmaWVkOgogICAgICBpbmNsdWRlL0NNYWtlTGlzdHMudHh0CiAgICAgIGluY2x1ZGUvbXlz cWwvcGx1Z2luLmgKICAgICAgaW5jbHVkZS9teXNxbC9wbHVnaW5fYXVkaXQuaC5wcAogICAgICBp bmNsdWRlL215c3FsL3BsdWdpbl9hdXRoLmgucHAKICAgICAgaW5jbHVkZS9teXNxbC9wbHVnaW5f ZnRwYXJzZXIuaC5wcAogICAgICBpbmNsdWRlL215c3FsL3NlcnZpY2VzLmgKICAgICAgaW5jbHVk ZS9zZXJ2aWNlX3ZlcnNpb25zLmgKICAgICAgbGlic2VydmljZXMvQ01ha2VMaXN0cy50eHQKICAg ICAgbXlzcWwtdGVzdC9pbmNsdWRlL3BsdWdpbi5kZWZzCiAgICAgIHNxbC9DTWFrZUxpc3RzLnR4 dAogICAgICBzcWwvaXRlbV9jcmVhdGUuY2MKICAgICAgc3FsL2l0ZW1fZnVuYy5jYwogICAgICBz cWwvaXRlbV9mdW5jLmgKICAgICAgc3FsL2l0ZW1fc3RyZnVuYy5jYwogICAgICBzcWwvc2hhcmUv Q01ha2VMaXN0cy50eHQKICAgICAgc3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAogICAgICBzcWwv c3FsX2FjbC5jYwogICAgICBzcWwvc3FsX2FjbC5oCiAgICAgIHNxbC9zcWxfcGx1Z2luLmNjCiAg ICAgIHNxbC9zcWxfcGx1Z2luX3NlcnZpY2VzLmgKICAgICAgc3FsL3NxbF95YWNjLnl5CiAgICAg IHN1cHBvcnQtZmlsZXMvQ01ha2VMaXN0cy50eHQKICAgICAgc3VwcG9ydC1maWxlcy9teS1odWdl LmNuZi5zaAogICAgICBzdXBwb3J0LWZpbGVzL215LWxhcmdlLmNuZi5zaAogICAgICBzdXBwb3J0 LWZpbGVzL215LW1lZGl1bS5jbmYuc2gKICAgICAgc3VwcG9ydC1maWxlcy9teS1zbWFsbC5jbmYu c2gKIDM5MDYgU3VubnkgQmFpbnMJMjAxMi0wNS0yOAogICAgICBCdWcjMTQxMjIxNTYgLSBJTk5P REIuSU5OT0RCLVdMNTUyMi1ERUJVRyBGQUlMVVJFIE9OIFBCMiBXSVRIIERJRkZFUkVOVCBTWU1Q VE9NUwogICAgICAKICAgICAgVXBkYXRlIHN1cHByZXNzaW9uIG1lc3NhZ2UuCgogICAgbW9kaWZp ZWQ6CiAgICAgIG15c3FsLXRlc3Qvc3VpdGUvaW5ub2RiL3QvaW5ub2RiLXdsNTUyMi1kZWJ1Zy50 ZXN0Cj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRlL0NNYWtlTGlzdHMudHh0JwotLS0gYS9pbmNs dWRlL0NNYWtlTGlzdHMudHh0CTIwMTItMDItMTYgMDk6NTE6MTQgKzAwMDAKKysrIGIvaW5jbHVk ZS9DTWFrZUxpc3RzLnR4dAkyMDEyLTA1LTIzIDA5OjU0OjQwICswMDAwCkBAIC0zMCw2ICszMCw3 IEBAIFNFVChIRUFERVJTX0FCSQogICBteXNxbC9wbHVnaW4uaAogICBteXNxbC9wbHVnaW5fYXVk aXQuaAogICBteXNxbC9wbHVnaW5fZnRwYXJzZXIuaAorICBteXNxbC9wbHVnaW5fdmFsaWRhdGVf cGFzc3dvcmQuaAogKQogCiBTRVQoSEVBREVSUyAKCj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRl L215c3FsL3BsdWdpbi5oJwotLS0gYS9pbmNsdWRlL215c3FsL3BsdWdpbi5oCTIwMTItMDUtMDgg MTg6MDE6MTkgKzAwMDAKKysrIGIvaW5jbHVkZS9teXNxbC9wbHVnaW4uaAkyMDEyLTA1LTI4IDA5 OjIxOjQwICswMDAwCkBAIC03Myw3ICs3Myw3IEBAIHR5cGVkZWYgc3RydWN0IHN0X215c3FsX3hp ZCBNWVNRTF9YSUQ7CiAgIFBsdWdpbiBBUEkuIENvbW1vbiBmb3IgYWxsIHBsdWdpbiB0eXBlcy4K ICovCiAKLSNkZWZpbmUgTVlTUUxfUExVR0lOX0lOVEVSRkFDRV9WRVJTSU9OIDB4MDEwMworI2Rl ZmluZSBNWVNRTF9QTFVHSU5fSU5URVJGQUNFX1ZFUlNJT04gMHgwMTA0CiAKIC8qCiAgIFRoZSBh bGxvd2FibGUgdHlwZXMgb2YgcGx1Z2lucwpAQCAtODYsNyArODYsOCBAQCB0eXBlZGVmIHN0cnVj dCBzdF9teXNxbF94aWQgTVlTUUxfWElEOwogI2RlZmluZSBNWVNRTF9BVURJVF9QTFVHSU4gICAg ICAgICAgIDUgIC8qIFRoZSBBdWRpdCBwbHVnaW4gdHlwZSAgICAgICAgKi8KICNkZWZpbmUgTVlT UUxfUkVQTElDQVRJT05fUExVR0lOICAgICA2CS8qIFRoZSByZXBsaWNhdGlvbiBwbHVnaW4gdHlw ZSAqLwogI2RlZmluZSBNWVNRTF9BVVRIRU5USUNBVElPTl9QTFVHSU4gIDcgIC8qIFRoZSBhdXRo ZW50aWNhdGlvbiBwbHVnaW4gdHlwZSAqLwotI2RlZmluZSBNWVNRTF9NQVhfUExVR0lOX1RZUEVf TlVNICAgIDggIC8qIFRoZSBudW1iZXIgb2YgcGx1Z2luIHR5cGVzICAgKi8KKyNkZWZpbmUgTVlT UUxfVkFMSURBVEVfUEFTU1dPUkRfUExVR0lOICA4ICAgLyogdmFsaWRhdGUgcGFzc3dvcmQgcGx1 Z2luIHR5cGUgKi8KKyNkZWZpbmUgTVlTUUxfTUFYX1BMVUdJTl9UWVBFX05VTSAgICA5ICAvKiBU aGUgbnVtYmVyIG9mIHBsdWdpbiB0eXBlcyAgICovCiAKIC8qIFdlIHVzZSB0aGUgZm9sbG93aW5n IHN0cmluZ3MgdG8gZGVmaW5lIGxpY2Vuc2VzIGZvciBwbHVnaW5zICovCiAjZGVmaW5lIFBMVUdJ Tl9MSUNFTlNFX1BST1BSSUVUQVJZIDAKCj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRlL215c3Fs L3BsdWdpbl9hdWRpdC5oLnBwJwotLS0gYS9pbmNsdWRlL215c3FsL3BsdWdpbl9hdWRpdC5oLnBw CTIwMTItMDQtMjAgMTA6MjE6MjggKzAwMDAKKysrIGIvaW5jbHVkZS9teXNxbC9wbHVnaW5fYXVk aXQuaC5wcAkyMDEyLTA1LTI4IDA5OjIxOjQwICswMDAwCkBAIC03Myw2ICs3MywzNSBAQCBleHRl cm4gc3RydWN0IG15X3BsdWdpbl9sb2dfc2VydmljZQogfSAqbXlfcGx1Z2luX2xvZ19zZXJ2aWNl OwogaW50IG15X3BsdWdpbl9sb2dfbWVzc2FnZShNWVNRTF9QTFVHSU4gKnBsdWdpbiwgZW51bSBw bHVnaW5fbG9nX2xldmVsIGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpmb3JtYXQsIC4uLik7CisjaW5jbHVkZSA8bXlzcWwvc2VydmljZV9teXNxbF9zdHJpbmcu aD4KK3R5cGVkZWYgdm9pZCAqbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZTsKK3R5cGVkZWYg dm9pZCAqbXlzcWxfc3RyaW5nX2hhbmRsZTsKK2V4dGVybiBzdHJ1Y3QgbXlzcWxfc3RyaW5nX3Nl cnZpY2Vfc3QgeworICBpbnQgKCpteXNxbF9zdHJpbmdfY29udmVydF90b19jaGFyX3B0cl90eXBl KQorICAgICAgIChteXNxbF9zdHJpbmdfaGFuZGxlLCBjb25zdCBjaGFyICosIGNoYXIgKiwgaW50 ICopOworICBteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlICgqbXlzcWxfc3RyaW5nX2dldF9p dGVyYXRvcl90eXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobXlzcWxfc3Ry aW5nX2hhbmRsZSk7CisgIGludCAoKm15c3FsX3N0cmluZ19pdGVyYXRvcl9uZXh0X3R5cGUpKG15 c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUpOworICBpbnQgKCpteXNxbF9zdHJpbmdfaXRlcmF0 b3JfaXN1cHBlcl90eXBlKShteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlKTsKKyAgaW50ICgq bXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2lzbG93ZXJfdHlwZSkobXlzcWxfc3RyaW5nX2l0ZXJhdG9y X2hhbmRsZSk7CisgIGludCAoKm15c3FsX3N0cmluZ19pdGVyYXRvcl9pc2RpZ2l0X3R5cGUpKG15 c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUpOworICBteXNxbF9zdHJpbmdfaGFuZGxlICgqbXlz cWxfc3RyaW5nX3RvX2xvd2VyY2FzZV90eXBlKShteXNxbF9zdHJpbmdfaGFuZGxlKTsKKyAgdm9p ZCAoKm15c3FsX3N0cmluZ19mcmVlX3R5cGUpKG15c3FsX3N0cmluZ19oYW5kbGUpOworICB2b2lk ICgqbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2ZyZWVfdHlwZSkobXlzcWxfc3RyaW5nX2l0ZXJhdG9y X2hhbmRsZSk7Cit9ICpteXNxbF9zdHJpbmdfc2VydmljZTsKK2ludCBteXNxbF9zdHJpbmdfY29u dmVydF90b19jaGFyX3B0cihteXNxbF9zdHJpbmdfaGFuZGxlIHN0cmluZ19oYW5kbGUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2hhcnNldF9uYW1l LCBjaGFyICpidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 ICplcnJvcik7CitteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlIG15c3FsX3N0cmluZ19nZXRf aXRlcmF0b3IobXlzcWxfc3RyaW5nX2hhbmRsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ19oYW5kbGUpOworaW50IG15c3FsX3N0 cmluZ19pdGVyYXRvcl9uZXh0KG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUgaXRlcmF0b3Jf aGFuZGxlKTsKK2ludCBteXNxbF9zdHJpbmdfaXRlcmF0b3JfaXN1cHBlcihteXNxbF9zdHJpbmdf aXRlcmF0b3JfaGFuZGxlIGl0ZXJhdG9yX2hhbmRsZSk7CitpbnQgbXlzcWxfc3RyaW5nX2l0ZXJh dG9yX2lzbG93ZXIobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSBpdGVyYXRvcl9oYW5kbGUp OworaW50IG15c3FsX3N0cmluZ19pdGVyYXRvcl9pc2RpZ2l0KG15c3FsX3N0cmluZ19pdGVyYXRv cl9oYW5kbGUgaXRlcmF0b3JfaGFuZGxlKTsKK215c3FsX3N0cmluZ19oYW5kbGUgbXlzcWxfc3Ry aW5nX3RvX2xvd2VyY2FzZShteXNxbF9zdHJpbmdfaGFuZGxlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nX2hhbmRsZSk7Cit2b2lkIG15c3FsX3N0 cmluZ19mcmVlKG15c3FsX3N0cmluZ19oYW5kbGUpOwordm9pZCBteXNxbF9zdHJpbmdfaXRlcmF0 b3JfZnJlZShteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlKTsKIHN0cnVjdCBzdF9teXNxbF94 aWQgewogICBsb25nIGZvcm1hdElEOwogICBsb25nIGd0cmlkX2xlbmd0aDsKCj09PSBtb2RpZmll ZCBmaWxlICdpbmNsdWRlL215c3FsL3BsdWdpbl9hdXRoLmgucHAnCi0tLSBhL2luY2x1ZGUvbXlz cWwvcGx1Z2luX2F1dGguaC5wcAkyMDEyLTA0LTIwIDEwOjIxOjI4ICswMDAwCisrKyBiL2luY2x1 ZGUvbXlzcWwvcGx1Z2luX2F1dGguaC5wcAkyMDEyLTA1LTI4IDA5OjIxOjQwICswMDAwCkBAIC03 Myw2ICs3MywzNSBAQCBleHRlcm4gc3RydWN0IG15X3BsdWdpbl9sb2dfc2VydmljZQogfSAqbXlf cGx1Z2luX2xvZ19zZXJ2aWNlOwogaW50IG15X3BsdWdpbl9sb2dfbWVzc2FnZShNWVNRTF9QTFVH SU4gKnBsdWdpbiwgZW51bSBwbHVnaW5fbG9nX2xldmVsIGxldmVsLAogICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7CisjaW5jbHVkZSA8bXlzcWwvc2Vy dmljZV9teXNxbF9zdHJpbmcuaD4KK3R5cGVkZWYgdm9pZCAqbXlzcWxfc3RyaW5nX2l0ZXJhdG9y X2hhbmRsZTsKK3R5cGVkZWYgdm9pZCAqbXlzcWxfc3RyaW5nX2hhbmRsZTsKK2V4dGVybiBzdHJ1 Y3QgbXlzcWxfc3RyaW5nX3NlcnZpY2Vfc3QgeworICBpbnQgKCpteXNxbF9zdHJpbmdfY29udmVy dF90b19jaGFyX3B0cl90eXBlKQorICAgICAgIChteXNxbF9zdHJpbmdfaGFuZGxlLCBjb25zdCBj aGFyICosIGNoYXIgKiwgaW50ICopOworICBteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlICgq bXlzcWxfc3RyaW5nX2dldF9pdGVyYXRvcl90eXBlKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobXlzcWxfc3RyaW5nX2hhbmRsZSk7CisgIGludCAoKm15c3FsX3N0cmluZ19pdGVy YXRvcl9uZXh0X3R5cGUpKG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUpOworICBpbnQgKCpt eXNxbF9zdHJpbmdfaXRlcmF0b3JfaXN1cHBlcl90eXBlKShteXNxbF9zdHJpbmdfaXRlcmF0b3Jf aGFuZGxlKTsKKyAgaW50ICgqbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2lzbG93ZXJfdHlwZSkobXlz cWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSk7CisgIGludCAoKm15c3FsX3N0cmluZ19pdGVyYXRv cl9pc2RpZ2l0X3R5cGUpKG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUpOworICBteXNxbF9z dHJpbmdfaGFuZGxlICgqbXlzcWxfc3RyaW5nX3RvX2xvd2VyY2FzZV90eXBlKShteXNxbF9zdHJp bmdfaGFuZGxlKTsKKyAgdm9pZCAoKm15c3FsX3N0cmluZ19mcmVlX3R5cGUpKG15c3FsX3N0cmlu Z19oYW5kbGUpOworICB2b2lkICgqbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2ZyZWVfdHlwZSkobXlz cWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSk7Cit9ICpteXNxbF9zdHJpbmdfc2VydmljZTsKK2lu dCBteXNxbF9zdHJpbmdfY29udmVydF90b19jaGFyX3B0cihteXNxbF9zdHJpbmdfaGFuZGxlIHN0 cmluZ19oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqY2hhcnNldF9uYW1lLCBjaGFyICpidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICplcnJvcik7CitteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxl IG15c3FsX3N0cmluZ19nZXRfaXRlcmF0b3IobXlzcWxfc3RyaW5nX2hhbmRsZQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ19oYW5k bGUpOworaW50IG15c3FsX3N0cmluZ19pdGVyYXRvcl9uZXh0KG15c3FsX3N0cmluZ19pdGVyYXRv cl9oYW5kbGUgaXRlcmF0b3JfaGFuZGxlKTsKK2ludCBteXNxbF9zdHJpbmdfaXRlcmF0b3JfaXN1 cHBlcihteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlIGl0ZXJhdG9yX2hhbmRsZSk7CitpbnQg bXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2lzbG93ZXIobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRs ZSBpdGVyYXRvcl9oYW5kbGUpOworaW50IG15c3FsX3N0cmluZ19pdGVyYXRvcl9pc2RpZ2l0KG15 c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUgaXRlcmF0b3JfaGFuZGxlKTsKK215c3FsX3N0cmlu Z19oYW5kbGUgbXlzcWxfc3RyaW5nX3RvX2xvd2VyY2FzZShteXNxbF9zdHJpbmdfaGFuZGxlCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nX2hhbmRs ZSk7Cit2b2lkIG15c3FsX3N0cmluZ19mcmVlKG15c3FsX3N0cmluZ19oYW5kbGUpOwordm9pZCBt eXNxbF9zdHJpbmdfaXRlcmF0b3JfZnJlZShteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlKTsK IHN0cnVjdCBzdF9teXNxbF94aWQgewogICBsb25nIGZvcm1hdElEOwogICBsb25nIGd0cmlkX2xl bmd0aDsKCj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRlL215c3FsL3BsdWdpbl9mdHBhcnNlci5o LnBwJwotLS0gYS9pbmNsdWRlL215c3FsL3BsdWdpbl9mdHBhcnNlci5oLnBwCTIwMTItMDQtMjAg MTA6MjE6MjggKzAwMDAKKysrIGIvaW5jbHVkZS9teXNxbC9wbHVnaW5fZnRwYXJzZXIuaC5wcAky MDEyLTA1LTI4IDA5OjIxOjQwICswMDAwCkBAIC03Myw2ICs3MywzNSBAQCBleHRlcm4gc3RydWN0 IG15X3BsdWdpbl9sb2dfc2VydmljZQogfSAqbXlfcGx1Z2luX2xvZ19zZXJ2aWNlOwogaW50IG15 X3BsdWdpbl9sb2dfbWVzc2FnZShNWVNRTF9QTFVHSU4gKnBsdWdpbiwgZW51bSBwbHVnaW5fbG9n X2xldmVsIGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3Jt YXQsIC4uLik7CisjaW5jbHVkZSA8bXlzcWwvc2VydmljZV9teXNxbF9zdHJpbmcuaD4KK3R5cGVk ZWYgdm9pZCAqbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZTsKK3R5cGVkZWYgdm9pZCAqbXlz cWxfc3RyaW5nX2hhbmRsZTsKK2V4dGVybiBzdHJ1Y3QgbXlzcWxfc3RyaW5nX3NlcnZpY2Vfc3Qg eworICBpbnQgKCpteXNxbF9zdHJpbmdfY29udmVydF90b19jaGFyX3B0cl90eXBlKQorICAgICAg IChteXNxbF9zdHJpbmdfaGFuZGxlLCBjb25zdCBjaGFyICosIGNoYXIgKiwgaW50ICopOworICBt eXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlICgqbXlzcWxfc3RyaW5nX2dldF9pdGVyYXRvcl90 eXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobXlzcWxfc3RyaW5nX2hhbmRs ZSk7CisgIGludCAoKm15c3FsX3N0cmluZ19pdGVyYXRvcl9uZXh0X3R5cGUpKG15c3FsX3N0cmlu Z19pdGVyYXRvcl9oYW5kbGUpOworICBpbnQgKCpteXNxbF9zdHJpbmdfaXRlcmF0b3JfaXN1cHBl cl90eXBlKShteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlKTsKKyAgaW50ICgqbXlzcWxfc3Ry aW5nX2l0ZXJhdG9yX2lzbG93ZXJfdHlwZSkobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSk7 CisgIGludCAoKm15c3FsX3N0cmluZ19pdGVyYXRvcl9pc2RpZ2l0X3R5cGUpKG15c3FsX3N0cmlu Z19pdGVyYXRvcl9oYW5kbGUpOworICBteXNxbF9zdHJpbmdfaGFuZGxlICgqbXlzcWxfc3RyaW5n X3RvX2xvd2VyY2FzZV90eXBlKShteXNxbF9zdHJpbmdfaGFuZGxlKTsKKyAgdm9pZCAoKm15c3Fs X3N0cmluZ19mcmVlX3R5cGUpKG15c3FsX3N0cmluZ19oYW5kbGUpOworICB2b2lkICgqbXlzcWxf c3RyaW5nX2l0ZXJhdG9yX2ZyZWVfdHlwZSkobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSk7 Cit9ICpteXNxbF9zdHJpbmdfc2VydmljZTsKK2ludCBteXNxbF9zdHJpbmdfY29udmVydF90b19j aGFyX3B0cihteXNxbF9zdHJpbmdfaGFuZGxlIHN0cmluZ19oYW5kbGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY2hhcnNldF9uYW1lLCBjaGFyICpi dWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICplcnJvcik7 CitteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlIG15c3FsX3N0cmluZ19nZXRfaXRlcmF0b3Io bXlzcWxfc3RyaW5nX2hhbmRsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cmluZ19oYW5kbGUpOworaW50IG15c3FsX3N0cmluZ19pdGVy YXRvcl9uZXh0KG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUgaXRlcmF0b3JfaGFuZGxlKTsK K2ludCBteXNxbF9zdHJpbmdfaXRlcmF0b3JfaXN1cHBlcihteXNxbF9zdHJpbmdfaXRlcmF0b3Jf aGFuZGxlIGl0ZXJhdG9yX2hhbmRsZSk7CitpbnQgbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2lzbG93 ZXIobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSBpdGVyYXRvcl9oYW5kbGUpOworaW50IG15 c3FsX3N0cmluZ19pdGVyYXRvcl9pc2RpZ2l0KG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUg aXRlcmF0b3JfaGFuZGxlKTsKK215c3FsX3N0cmluZ19oYW5kbGUgbXlzcWxfc3RyaW5nX3RvX2xv d2VyY2FzZShteXNxbF9zdHJpbmdfaGFuZGxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RyaW5nX2hhbmRsZSk7Cit2b2lkIG15c3FsX3N0cmluZ19mcmVl KG15c3FsX3N0cmluZ19oYW5kbGUpOwordm9pZCBteXNxbF9zdHJpbmdfaXRlcmF0b3JfZnJlZSht eXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlKTsKIHN0cnVjdCBzdF9teXNxbF94aWQgewogICBs b25nIGZvcm1hdElEOwogICBsb25nIGd0cmlkX2xlbmd0aDsKCj09PSBhZGRlZCBmaWxlICdpbmNs dWRlL215c3FsL3BsdWdpbl92YWxpZGF0ZV9wYXNzd29yZC5oJwotLS0gYS9pbmNsdWRlL215c3Fs L3BsdWdpbl92YWxpZGF0ZV9wYXNzd29yZC5oCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysr IGIvaW5jbHVkZS9teXNxbC9wbHVnaW5fdmFsaWRhdGVfcGFzc3dvcmQuaAkyMDEyLTA1LTIzIDA5 OjU0OjQwICswMDAwCkBAIC0wLDAgKzEsNDYgQEAKKy8qIENvcHlyaWdodCDCqSAyMDEyLCBPcmFj bGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCisgICBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlm dGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSAgVVNBICovCisKKyNpZm5kZWYgTVlTUUxf UExVR0lOX1ZBTElEQVRFX1BBU1NXT1JEX0lOQ0xVREVECisjZGVmaW5lIE1ZU1FMX1BMVUdJTl9W QUxJREFURV9QQVNTV09SRF9JTkNMVURFRAorCisvKiBBUEkgZm9yIHZhbGlkYXRlX3Bhc3N3b3Jk IHBsdWdpbi4gKE1ZU1FMX1ZBTElEQVRFX1BBU1NXT1JEX1BMVUdJTikgKi8KKworI2luY2x1ZGUg PG15c3FsL3BsdWdpbi5oPgorI2RlZmluZSBNWVNRTF9WQUxJREFURV9QQVNTV09SRF9JTlRFUkZB Q0VfVkVSU0lPTiAweDAxMDAKKworLyogIAorICBUaGUgZGVzY3JpcHRvciBzdHJ1Y3R1cmUgZm9y IHRoZSBwbHVnaW4sIHRoYXQgaXMgcmVmZXJyZWQgZnJvbQorICBzdF9teXNxbF9wbHVnaW4uCisq LworCit0eXBlZGVmIHZvaWQqIG15c3FsX3N0cmluZ19oYW5kbGU7CisKK3N0cnVjdCBzdF9teXNx bF92YWxpZGF0ZV9wYXNzd29yZAoreworICBpbnQgaW50ZXJmYWNlX3ZlcnNpb247CisgIC8qICAK KyAgICBUaGlzIGZ1bmN0aW9uIHJldHVucyBUUlVFIGZvciBwYXNzd29yZHMgd2hpY2ggc2F0aXNm eSB0aGUgcGFzc3dvcmQKKyAgICBwb2xpY3kgKGFzIGNob29zZW4gYnkgcGx1Z2luIHZhcmlhYmxl KSBhbmQgRkFMU0UgZm9yIGFsbCBvdGhlcgorICAgIHBhc3N3b3JkCisgICovCisgIGludCAoKnZh bGlkYXRlX3Bhc3N3b3JkKShteXNxbF9zdHJpbmdfaGFuZGxlIHBhc3N3b3JkKTsKKyAgLyogIAor ICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcGFzc3dvcmQgc3RyZW5ndGggKDAtMTAwKSBk ZXBlbmRpbmcKKyAgICB1cG9uIHRoZSBwb2xpY2llcworICAqLworICBpbnQgKCpnZXRfcGFzc3dv cmRfc3RyZW5ndGgpKG15c3FsX3N0cmluZ19oYW5kbGUgcGFzc3dvcmQpOworfTsKKyNlbmRpZgoK PT09IGFkZGVkIGZpbGUgJ2luY2x1ZGUvbXlzcWwvc2VydmljZV9teXNxbF9zdHJpbmcuaCcKLS0t IGEvaW5jbHVkZS9teXNxbC9zZXJ2aWNlX215c3FsX3N0cmluZy5oCTE5NzAtMDEtMDEgMDA6MDA6 MDAgKzAwMDAKKysrIGIvaW5jbHVkZS9teXNxbC9zZXJ2aWNlX215c3FsX3N0cmluZy5oCTIwMTIt MDUtMjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTAsMCArMSwxMzIgQEAKKy8qIENvcHlyaWdodCDCqSAy MDEyLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor CisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKworICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSAgVVNBICovCisKKy8qIFRo aXMgc2VydmljZSBwcm92aWRlcyBmdW5jdGlvbnMgdG8gcGFyc2UgbXlzcWwgU3RyaW5nICovCisK KyNpZm5kZWYgTVlTUUxfU0VSVklDRV9NWVNRTF9TVFJJTkdfSU5DTFVERUQKKyNkZWZpbmUgTVlT UUxfU0VSVklDRV9NWVNRTF9TVFJJTkdfSU5DTFVERUQKKworI2lmbmRlZiBNWVNRTF9BQklfQ0hF Q0sKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4 dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgdm9pZCAqbXlzcWxfc3RyaW5nX2l0ZXJhdG9y X2hhbmRsZTsKK3R5cGVkZWYgdm9pZCAqbXlzcWxfc3RyaW5nX2hhbmRsZTsKKworZXh0ZXJuIHN0 cnVjdCBteXNxbF9zdHJpbmdfc2VydmljZV9zdCB7CisgIGludCAoKm15c3FsX3N0cmluZ19jb252 ZXJ0X3RvX2NoYXJfcHRyX3R5cGUpCisgICAgICAgKG15c3FsX3N0cmluZ19oYW5kbGUsIGNvbnN0 IGNoYXIgKiwgY2hhciAqLCBpbnQgKik7CisgIG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUg KCpteXNxbF9zdHJpbmdfZ2V0X2l0ZXJhdG9yX3R5cGUpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChteXNxbF9zdHJpbmdfaGFuZGxlKTsKKyAgaW50ICgqbXlzcWxfc3RyaW5nX2l0 ZXJhdG9yX25leHRfdHlwZSkobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSk7CisgIGludCAo Km15c3FsX3N0cmluZ19pdGVyYXRvcl9pc3VwcGVyX3R5cGUpKG15c3FsX3N0cmluZ19pdGVyYXRv cl9oYW5kbGUpOworICBpbnQgKCpteXNxbF9zdHJpbmdfaXRlcmF0b3JfaXNsb3dlcl90eXBlKSht eXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlKTsKKyAgaW50ICgqbXlzcWxfc3RyaW5nX2l0ZXJh dG9yX2lzZGlnaXRfdHlwZSkobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSk7CisgIG15c3Fs X3N0cmluZ19oYW5kbGUgKCpteXNxbF9zdHJpbmdfdG9fbG93ZXJjYXNlX3R5cGUpKG15c3FsX3N0 cmluZ19oYW5kbGUpOworICB2b2lkICgqbXlzcWxfc3RyaW5nX2ZyZWVfdHlwZSkobXlzcWxfc3Ry aW5nX2hhbmRsZSk7CisgIHZvaWQgKCpteXNxbF9zdHJpbmdfaXRlcmF0b3JfZnJlZV90eXBlKSht eXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlKTsKK30gKm15c3FsX3N0cmluZ19zZXJ2aWNlOwor CisjaWZkZWYgTVlTUUxfRFlOQU1JQ19QTFVHSU4KKworI2RlZmluZSBteXNxbF9zdHJpbmdfY29u dmVydF90b19jaGFyX3B0cihzdHJpbmdfaGFuZGxlLCBjaGFyc2V0X25hbWUsIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBlcnJvcikgXAorICAgICAg ICBteXNxbF9zdHJpbmdfc2VydmljZS0+bXlzcWxfc3RyaW5nX2NvbnZlcnRfdG9fY2hhcl9wdHJf dHlwZSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nX2hhbmRsZSwgY2hh cnNldF9uYW1lLCBidWZmZXIsIGVycm9yKQorCisjZGVmaW5lIG15c3FsX3N0cmluZ19nZXRfaXRl cmF0b3Ioc3RyaW5nX2hhbmRsZSkgXAorICAgICAgICBteXNxbF9zdHJpbmdfc2VydmljZS0+bXlz cWxfc3RyaW5nX2dldF9pdGVyYXRvcl90eXBlKHN0cmluZ19oYW5kbGUpCisKKyNkZWZpbmUgbXlz cWxfc3RyaW5nX2l0ZXJhdG9yX25leHQoaXRlcmF0b3JfaGFuZGxlKSBcCisgICAgICAgIG15c3Fs X3N0cmluZ19zZXJ2aWNlLT5teXNxbF9zdHJpbmdfaXRlcmF0b3JfbmV4dF90eXBlKGl0ZXJhdG9y X2hhbmRsZSkKKworI2RlZmluZSBteXNxbF9zdHJpbmdfaXRlcmF0b3JfaXN1cHBlcihpdGVyYXRv cl9oYW5kbGUpIFwKKyAgICAgICAgbXlzcWxfc3RyaW5nX3NlcnZpY2UtPm15c3FsX3N0cmluZ19p dGVyYXRvcl9pc3VwcGVyX3R5cGUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChpdGVyYXRvcl9oYW5kbGUpCisKKyNkZWZpbmUgbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2lz bG93ZXIoaXRlcmF0b3JfaGFuZGxlKSBcCisgICAgICAgIG15c3FsX3N0cmluZ19zZXJ2aWNlLT5t eXNxbF9zdHJpbmdfaXRlcmF0b3JfaXNsb3dlcl90eXBlIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoaXRlcmF0b3JfaGFuZGxlKQorCisjZGVmaW5lIG15c3FsX3N0cmlu Z19pdGVyYXRvcl9pc2RpZ2l0KGl0ZXJhdG9yX2hhbmRsZSkgXAorICAgICAgICBteXNxbF9zdHJp bmdfc2VydmljZS0+bXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2lzZGlnaXRfdHlwZSBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZXJhdG9yX2hhbmRsZSkKKworI2RlZmlu ZSBteXNxbF9zdHJpbmdfdG9fbG93ZXJjYXNlKHN0cmluZ19oYW5kbGUpIFwKKyAgICAgICAgbXlz cWxfc3RyaW5nX3NlcnZpY2UtPm15c3FsX3N0cmluZ190b19sb3dlcmNhc2VfdHlwZShzdHJpbmdf aGFuZGxlKQorCisjZGVmaW5lIG15c3FsX3N0cmluZ19mcmVlKG15c3FsX3N0cmluZ19oYW5kbGUp IFwKKyAgICAgICAgbXlzcWxfc3RyaW5nX3NlcnZpY2UtPm15c3FsX3N0cmluZ19mcmVlX3R5cGUo bXlzcWxfc3RyaW5nX2hhbmRsZSkKKworI2RlZmluZSBteXNxbF9zdHJpbmdfaXRlcmF0b3JfZnJl ZShteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlKSBcCisgICAgICAgIG15c3FsX3N0cmluZ19z ZXJ2aWNlLT5teXNxbF9zdHJpbmdfaXRlcmF0b3JfZnJlZV90eXBlIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSkKKyNlbHNl CisKKy8qIFRoaXMgc2VydmljZSBmdW5jdGlvbiBjb252ZXJ0IHN0cmluZyBpbnRvIGdpdmVuIGNo YXJhY3RlciBzZXQgKi8KK2ludCBteXNxbF9zdHJpbmdfY29udmVydF90b19jaGFyX3B0cihteXNx bF9zdHJpbmdfaGFuZGxlIHN0cmluZ19oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqY2hhcnNldF9uYW1lLCBjaGFyICpidWZmZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICplcnJvcik7CisKKy8qIFRoaXMg c2VydmljZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGl0ZXJhdG9yIGhh bmRsZSAqLworbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSBteXNxbF9zdHJpbmdfZ2V0X2l0 ZXJhdG9yKG15c3FsX3N0cmluZ19oYW5kbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdfaGFuZGxlKTsKKy8qICAKKyAgVGhpcyBz ZXJ2aWNlIGZ1bmN0aW9uIGdldHMgdGhlIG5leHQgaXRlcmF0b3IgaGFuZGxlCisgIHJldHVybnMg MCBpZiByZWFjaGVkIHRoZSBlbmQgZWxzZSByZXR1cm4gMQorKi8KK2ludCBteXNxbF9zdHJpbmdf aXRlcmF0b3JfbmV4dChteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlIGl0ZXJhdG9yX2hhbmRs ZSk7CisKKy8qICAKKyAgVGhpcyBzZXJ2aWNlIGZ1bmN0aW9uIHJldHVybiAxIGlmIGN1cnJlbnQg aXRlcmF0b3IgaGFuZGxlIHBvaW50cyB0byBhCisgIHVwcGVyY2FzZSBjaGFyYWN0ZXIgZWxzZSBy ZXR1cm4gMCBmb3IgY2xpZW50IGNoYXJhY3RlciBzZXQuCisqLworaW50IG15c3FsX3N0cmluZ19p dGVyYXRvcl9pc3VwcGVyKG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUgaXRlcmF0b3JfaGFu ZGxlKTsKKworLyogIAorICBUaGlzIHNlcnZpY2UgZnVuY3Rpb24gcmV0dXJuIDEgaWYgY3VycmVu dCBpdGVyYXRvciBoYW5kbGUgcG9pbnRzIHRvIGEKKyAgbG93ZXJjYXNlIGNoYXJhY3RlciBlbHNl IHJldHVybiAwIGZvciBjbGllbnQgY2hhcmFjdGVyIHNldC4KKyovCitpbnQgbXlzcWxfc3RyaW5n X2l0ZXJhdG9yX2lzbG93ZXIobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSBpdGVyYXRvcl9o YW5kbGUpOworCisvKiAgCisgIFRoaXMgc2VydmljZSBmdW5jdGlvbiByZXR1cm4gMSBpZiBjdXJy ZW50IGl0ZXJhdG9yIGhhbmRsZSBwb2ludHMgdG8gYSBkaWdpdAorICBlbHNlIHJldHVybiAwIGZv ciBjbGllbnQgY2hhcmFjdGVyIHNldHMuCisqLworaW50IG15c3FsX3N0cmluZ19pdGVyYXRvcl9p c2RpZ2l0KG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUgaXRlcmF0b3JfaGFuZGxlKTsKKwor LyogY29udmVydCBzdHJpbmdfaGFuZGxlIGludG8gbG93ZXJjYXNlICovCitteXNxbF9zdHJpbmdf aGFuZGxlIG15c3FsX3N0cmluZ190b19sb3dlcmNhc2UobXlzcWxfc3RyaW5nX2hhbmRsZQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ19oYW5kbGUp OworCisvKiBJdCBkZWFsbG9jYXRlcyB0aGUgc3RyaW5nIGNyZWF0ZWQgb24gc2VydmVyIHNpZGUg ZHVyaW5nIHBsdWdpbiBvcGVyYXRpb25zICovCit2b2lkIG15c3FsX3N0cmluZ19mcmVlKG15c3Fs X3N0cmluZ19oYW5kbGUpOworCisvKiAgCisgIEl0IGRlYWxsb2NhdGVzIHRoZSBzdHJpbmcgaXRl cmF0b3IgY3JlYXRlZCBvbiBzZXJ2ZXIgc2lkZQorICBkdXJpbmcgcGx1Z2luIG9wZXJhdGlvbnMK KyovCit2b2lkIG15c3FsX3N0cmluZ19pdGVyYXRvcl9mcmVlKG15c3FsX3N0cmluZ19pdGVyYXRv cl9oYW5kbGUpOworCisjZW5kaWYKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNl bmRpZgoKPT09IG1vZGlmaWVkIGZpbGUgJ2luY2x1ZGUvbXlzcWwvc2VydmljZXMuaCcKLS0tIGEv aW5jbHVkZS9teXNxbC9zZXJ2aWNlcy5oCTIwMTEtMDYtMzAgMTU6NTA6NDUgKzAwMDAKKysrIGIv aW5jbHVkZS9teXNxbC9zZXJ2aWNlcy5oCTIwMTItMDUtMjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTIz LDYgKzIzLDcgQEAgZXh0ZXJuICJDIiB7CiAjaW5jbHVkZSA8bXlzcWwvc2VydmljZV90aGRfd2Fp dC5oPgogI2luY2x1ZGUgPG15c3FsL3NlcnZpY2VfdGhyZWFkX3NjaGVkdWxlci5oPgogI2luY2x1 ZGUgPG15c3FsL3NlcnZpY2VfbXlfcGx1Z2luX2xvZy5oPgorI2luY2x1ZGUgPG15c3FsL3NlcnZp Y2VfbXlzcWxfc3RyaW5nLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQoKPT09IG1vZGlmaWVk IGZpbGUgJ2luY2x1ZGUvc2VydmljZV92ZXJzaW9ucy5oJwotLS0gYS9pbmNsdWRlL3NlcnZpY2Vf dmVyc2lvbnMuaAkyMDExLTA2LTMwIDE1OjUwOjQ1ICswMDAwCisrKyBiL2luY2x1ZGUvc2Vydmlj ZV92ZXJzaW9ucy5oCTIwMTItMDUtMjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTI0LDMgKzI0LDQgQEAK ICNkZWZpbmUgVkVSU0lPTl90aGRfd2FpdCAgICAgICAgMHgwMTAwCiAjZGVmaW5lIFZFUlNJT05f bXlfdGhyZWFkX3NjaGVkdWxlciAweDAxMDAKICNkZWZpbmUgVkVSU0lPTl9teV9wbHVnaW5fbG9n IDB4MDEwMAorI2RlZmluZSBWRVJTSU9OX215c3FsX3N0cmluZyAgMHgwMTAwCgo9PT0gbW9kaWZp ZWQgZmlsZSAnbGlic2VydmljZXMvQ01ha2VMaXN0cy50eHQnCi0tLSBhL2xpYnNlcnZpY2VzL0NN YWtlTGlzdHMudHh0CTIwMTEtMDYtMzAgMTU6NTA6NDUgKzAwMDAKKysrIGIvbGlic2VydmljZXMv Q01ha2VMaXN0cy50eHQJMjAxMi0wNS0yMyAwOTo1NDo0MCArMDAwMApAQCAtMjAsNyArMjAsOCBA QCBTRVQoTVlTUUxTRVJWSUNFU19TT1VSQ0VTCiAgIHRoZF9hbGxvY19zZXJ2aWNlLmMKICAgdGhk X3dhaXRfc2VydmljZS5jCiAgIG15X3BsdWdpbl9sb2dfc2VydmljZS5jCi0gIG15X3RocmVhZF9z Y2hlZHVsZXJfc2VydmljZS5jKQorICBteV90aHJlYWRfc2NoZWR1bGVyX3NlcnZpY2UuYworICBt eXNxbF9zdHJpbmdfc2VydmljZS5jKQogCiBBRERfTElCUkFSWShteXNxbHNlcnZpY2VzICR7TVlT UUxTRVJWSUNFU19TT1VSQ0VTfSkKIElOU1RBTEwoVEFSR0VUUyBteXNxbHNlcnZpY2VzIERFU1RJ TkFUSU9OICR7SU5TVEFMTF9MSUJESVJ9IENPTVBPTkVOVCBEZXZlbG9wbWVudCkKCj09PSBhZGRl ZCBmaWxlICdsaWJzZXJ2aWNlcy9teXNxbF9zdHJpbmdfc2VydmljZS5jJwotLS0gYS9saWJzZXJ2 aWNlcy9teXNxbF9zdHJpbmdfc2VydmljZS5jCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysr IGIvbGlic2VydmljZXMvbXlzcWxfc3RyaW5nX3NlcnZpY2UuYwkyMDEyLTA1LTIzIDA5OjU0OjQw ICswMDAwCkBAIC0wLDAgKzEsMTggQEAKKy8qICBDb3B5cmlnaHQgwqkgMjAxMiwgT3JhY2xlIGFu ZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICAKKyAgICBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMKKyAgICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgdmVyc2lvbiAyIG9mIHRoZQorICAgIExpY2Vuc2UuCisgICAgCisgICAgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuIFNlZSB0aGUKKyAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICAgIAorICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07 IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgICBGb3VuZGF0aW9uLCBJbmMu LCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0Eg Ki8KKworI2luY2x1ZGUgPHNlcnZpY2VfdmVyc2lvbnMuaD4KK1NFUlZJQ0VfVkVSU0lPTiAqbXlz cWxfc3RyaW5nX3NlcnZpY2U9ICh2b2lkKilWRVJTSU9OX215c3FsX3N0cmluZzsKCj09PSBhZGRl ZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUvaGF2ZV92YWxpZGF0ZV9wYXNzd29yZF9wbHVnaW4u aW5jJwotLS0gYS9teXNxbC10ZXN0L2luY2x1ZGUvaGF2ZV92YWxpZGF0ZV9wYXNzd29yZF9wbHVn aW4uaW5jCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9pbmNsdWRl L2hhdmVfdmFsaWRhdGVfcGFzc3dvcmRfcGx1Z2luLmluYwkyMDEyLTA1LTIzIDA5OjU0OjQwICsw MDAwCkBAIC0wLDAgKzEsMjAgQEAKKyMKKyMgQ2hlY2sgaWYgc2VydmVyIGhhcyBzdXBwb3J0IGZv ciBsb2FkaW5nIHBsdWdpbnMKKyMKK2lmIChgU0VMRUNUIEBAaGF2ZV9keW5hbWljX2xvYWRpbmcg IT0gJ1lFUydgKSB7CisgIC0tc2tpcCB2YWxpZGF0ZSBwYXNzd29yZCByZXF1aXJlcyBkeW5hbWlj IGxvYWRpbmcKK30KKworIworIyBDaGVjayBpZiB0aGUgdmFyaWFibGUgVkFMSURBVEVfUEFTU1dP UkQgaXMgc2V0CisjCitpZiAoISRWQUxJREFURV9QQVNTV09SRCkgeworICAtLXNraXAgdmFsaWRh dGUgcGFzc3dvcmQgcmVxdWlyZXMgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFwkVkFMSURBVEVf UEFTU1dPUkQgdG8gYmUgc2V0IChub3JtYWxseSBkb25lIGJ5IG10cikKK30KKworIworIyBDaGVj ayBpZiAtLXBsdWdpbi1kaXIgd2FzIHNldHVwIGZvciB2YWxpZGF0ZSBwYXNzd29yZAorIworaWYg KGBTRUxFQ1QgQ09OQ0FUKCctLXBsdWdpbi1kaXI9JywgUkVQTEFDRShAQHBsdWdpbl9kaXIsICdc XFxcJywgJy8nKSkgIT0gJyRWQUxJREFURV9QQVNTV09SRF9PUFQvJ2ApIHsKKyAgLS1za2lwIHZh bGlkYXRlIHBhc3N3b3JkIHJlcXVpcmVzIHRoYXQgLS1wbHVnaW4tZGlyIGlzIHNldCB0byB0aGUg dmFsaWRhdGUgcGFzc3dvcmQgZGlyIChlaXRoZXIgdGhlIC5vcHQgZmlsZSBkb2VzIG5vdCBjb250 YWluIFwkVkFMSURBVEVfUEFTU1dPUkRfT1BUIG9yIGFub3RoZXIgcGx1Z2luIGlzIGluIHVzZSkK K30KCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUvcGx1Z2luLmRlZnMnCi0t LSBhL215c3FsLXRlc3QvaW5jbHVkZS9wbHVnaW4uZGVmcwkyMDEyLTAyLTIwIDE2OjI5OjE4ICsw MDAwCisrKyBiL215c3FsLXRlc3QvaW5jbHVkZS9wbHVnaW4uZGVmcwkyMDEyLTA1LTIzIDA5OjU0 OjQwICswMDAwCkBAIC00NCwzICs0NCw0IEBAIGFkdF9udWxsICAgICAgICAgICBwbHVnaW4vYXVk aXRfbnVsbCAgQVUKIGxpYmRhZW1vbl9leGFtcGxlICBwbHVnaW4vZGFlbW9uX2V4YW1wbGUgREFF TU9ORVhBTVBMRQogbGlibWVtY2FjaGVkICAgICAgIHBsdWdpbi9pbm5vZGJfbWVtY2FjaGVkL2Rh ZW1vbl9tZW1jYWNoZWQgREFFTU9OX01FTUNBQ0hFRCBkYWVtb25fbWVtY2FjaGVkCiBpbm5vZGJf ZW5naW5lICAgICAgcGx1Z2luL2lubm9kYl9tZW1jYWNoZWQvaW5ub2RiX21lbWNhY2hlIElOTk9E Ql9FTkdJTkUKK3ZhbGlkYXRlX3Bhc3N3b3JkICBwbHVnaW4vcGFzc3dvcmRfdmFsaWRhdGlvbiBW QUxJREFURV9QQVNTV09SRAoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvci92YWxpZGF0ZV9w YXNzd29yZF9wbHVnaW4ucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvdmFsaWRhdGVfcGFzc3dv cmRfcGx1Z2luLnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRl c3Qvci92YWxpZGF0ZV9wYXNzd29yZF9wbHVnaW4ucmVzdWx0CTIwMTItMDUtMjQgMTA6NTY6NTIg KzAwMDAKQEAgLTAsMCArMSwxNTcgQEAKK0NSRUFURSBVU0VSICdiYXNlX3VzZXInQCdsb2NhbGhv c3QnIElERU5USUZJRUQgQlkgJ3Bhc3MnOworR1JBTlQgQUxMIE9OIG15c3FsLiogVE8gJ3VzZXIx J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZICdwYXNzJzsKK0lOU1RBTEwgUExVR0lOIHZhbGlk YXRlX3Bhc3N3b3JkIFNPTkFNRSAndmFsaWRhdGVfcGFzc3dvcmQuc28nOworIyBwYXNzd29yZCBw b2xpY3kgTE9XICh3aGljaCBvbmx5IGNoZWNrIGZvciBwYXNzd29yZCBsZW5ndGgpCisjIGRlZmF1 bHQgY2FzZTogcGFzc3dvcmQgbGVuZ3RoIHNob3VsZCBiZSBtaW5pbXVtIDgKK1NFVCBAQGdsb2Jh bC52YWxpZGF0ZV9wYXNzd29yZF9wb2xpY3lfbnVtYmVyPUxPVzsKK0NSRUFURSBVU0VSICd1c2Vy J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZICcnOworRVJST1IgSFkwMDA6IFlvdXIgcGFzc3dv cmQgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY3VycmVudCBwb2xpY3kgcmVxdWlyZW1lbnRzCitTRVQg UEFTU1dPUkQgRk9SICdiYXNlX3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgnYXdlZycpOwor RVJST1IgSFkwMDA6IFlvdXIgcGFzc3dvcmQgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY3VycmVudCBw b2xpY3kgcmVxdWlyZW1lbnRzCitTRVQgUEFTU1dPUkQgRk9SICdiYXNlX3VzZXInQCdsb2NhbGhv c3QnPSBQQVNTV09SRCgncGFzc3dvcmQzJyk7CitTRVQgUEFTU1dPUkQgRk9SICdiYXNlX3VzZXIn QCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGFzc3dvcmQnKTsKK1NFVCBQQVNTV09SRCBGT1IgJ2Jh c2VfdXNlcidAJ2xvY2FsaG9zdCc9IFBBU1NXT1JEKCdwYXNzd29yJyk7CitFUlJPUiBIWTAwMDog WW91ciBwYXNzd29yZCBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjdXJyZW50IHBvbGljeSByZXF1aXJl bWVudHMKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9sZW5ndGg9IDEyOworVVBEQVRF IG15c3FsLnVzZXIgU0VUIFBBU1NXT1JEPSBQQVNTV09SRCgncGFzc3dvcmQnKSBXSEVSRSB1c2Vy PSdiYXNlX3VzZXInOworRVJST1IgSFkwMDA6IFlvdXIgcGFzc3dvcmQgZG9lcyBub3Qgc2F0aXNm eSB0aGUgY3VycmVudCBwb2xpY3kgcmVxdWlyZW1lbnRzCitVUERBVEUgbXlzcWwudXNlciBTRVQg UEFTU1dPUkQ9IFBBU1NXT1JEKCdhZnJndHlobHA5OCcpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7 CitFUlJPUiBIWTAwMDogWW91ciBwYXNzd29yZCBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjdXJyZW50 IHBvbGljeSByZXF1aXJlbWVudHMKK1VQREFURSBteXNxbC51c2VyIFNFVCBQQVNTV09SRD0gUEFT U1dPUkQoJ2l1eXQ1NjduYnZmQScpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitHUkFOVCBVU0FH RSBPTiAqLiogVE8gJ2Jhc2VfdXNlcidAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSAncGFzc3dv cmQxMjM0JzsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9sZW5ndGg9IDA7CitVUERB VEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9IFBBU1NXT1JEKCcnKSBXSEVSRSB1c2VyPSdiYXNl X3VzZXInOworVVBEQVRFIG15c3FsLnVzZXIgU0VUIFBBU1NXT1JEPSBQQVNTV09SRCgncCcpIFdI RVJFIHVzZXI9J2Jhc2VfdXNlcic7CitVUERBVEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9IFBB U1NXT1JEKCdwYXNzd29yZCcpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitTRVQgQEBnbG9iYWwu dmFsaWRhdGVfcGFzc3dvcmRfbGVuZ3RoPSAtMjsKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRy dW5jYXRlZCBpbmNvcnJlY3QgdmFsaWRhdGVfcGFzc3dvcmRfbGVuZ3RoIHZhbHVlOiAnLTInCitT RVQgQEBnbG9iYWwudmFsaWRhdGVfcGFzc3dvcmRfbGVuZ3RoPSAzLjU7CitFUlJPUiA0MjAwMDog SW5jb3JyZWN0IGFyZ3VtZW50IHR5cGUgdG8gdmFyaWFibGUgJ3ZhbGlkYXRlX3Bhc3N3b3JkX2xl bmd0aCcKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9sZW5ndGg9IDIxNDc0ODM2NDc7 CitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFzc3dvcmRfbGVuZ3RoPSAyMTQ3NDgzNjQ4OworV2Fy bmluZ3M6CitXYXJuaW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCB2YWxpZGF0ZV9wYXNzd29y ZF9sZW5ndGggdmFsdWU6ICcyMTQ3NDgzNjQ4JworUFJFUEFSRSBzdG10MSBGUk9NICdVUERBVEUg bXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9KD8pIHdoZXJlIFVTRVIgPSA/JzsKK1NFVCBAYSA9IFJF UEVBVCgnYScsMjE0NzQ4MzY0Nyk7CitXYXJuaW5nczoKK1dhcm5pbmcJMTMwMQlSZXN1bHQgb2Yg cmVwZWF0KCkgd2FzIGxhcmdlciB0aGFuIG1heF9hbGxvd2VkX3BhY2tldCAoMTA0ODU3NikgLSB0 cnVuY2F0ZWQKK1NFVCBAYiA9ICd1c2VyQGxvY2FsaG9zdCc7CitFWEVDVVRFIHN0bXQxIFVTSU5H IEBhLEBiOworREVBTExPQ0FURSBQUkVQQVJFIHN0bXQxOworU0VUIEBAZ2xvYmFsLnZhbGlkYXRl X3Bhc3N3b3JkX2xlbmd0aD0gNDI5NDk2NzI5NTsKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRy dW5jYXRlZCBpbmNvcnJlY3QgdmFsaWRhdGVfcGFzc3dvcmRfbGVuZ3RoIHZhbHVlOiAnNDI5NDk2 NzI5NScKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9sZW5ndGg9IDg7CitQUkVQQVJF IHN0bXQxIEZST00gJ1VQREFURSBteXNxbC51c2VyIFNFVCBQQVNTV09SRD0oPykgd2hlcmUgVVNF UiA9ID8nOworU0VUIEBhID0gUkVQRUFUKCdhJywxMDQ4NTc2KTsKK1NFVCBAYiA9ICd1c2VyQGxv Y2FsaG9zdCc7CitFWEVDVVRFIHN0bXQxIFVTSU5HIEBhLEBiOworREVBTExPQ0FURSBQUkVQQVJF IHN0bXQxOworIyBwYXNzd29yZCBwb2xpY3kgTUVESVVNIChjaGVjayBmb3IgbWl4ZWRfY2FzZSwg ZGlnaXRzLCBzcGVjaWFsX2NoYXJzKQorIyBkZWZhdWx0IGNhc2UgOiBhdGxlYXN0IDEgbWl4ZWRf Y2FzZSwgMSBkaWdpdCwgMSBzcGVjaWFsX2NoYXIKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNz d29yZF9wb2xpY3lfbnVtYmVyPU1FRElVTTsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29y ZF9udW1iZXJfY291bnQ9IDA7CitDUkVBVEUgVVNFUiAndXNlcidAJ2xvY2FsaG9zdCcgSURFTlRJ RklFRCBCWSAnYWVkZm9pQVNFJCUnOworU0VUIFBBU1NXT1JEIEZPUiAndXNlcidAJ2xvY2FsaG9z dCc9IFBBU1NXT1JEKCdmb2l1aXV5dGQ3OCcpOworRVJST1IgSFkwMDA6IFlvdXIgcGFzc3dvcmQg ZG9lcyBub3Qgc2F0aXNmeSB0aGUgY3VycmVudCBwb2xpY3kgcmVxdWlyZW1lbnRzCitTRVQgUEFT U1dPUkQgRk9SICd1c2VyJ0AnbG9jYWxob3N0Jz0gUEFTU1dPUkQoJ3Bhc3JldHJ5RlJHSCZeOTgn KTsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9taXhlZF9jYXNlX2NvdW50PSAwOwor Q1JFQVRFIFVTRVIgJ3VzZXInQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgJ2FlZFNXRWhqdWkn OworRVJST1IgSFkwMDA6IFlvdXIgcGFzc3dvcmQgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY3VycmVu dCBwb2xpY3kgcmVxdWlyZW1lbnRzCitTRVQgUEFTU1dPUkQgRk9SICd1c2VyJ0AnbG9jYWxob3N0 Jz0gUEFTU1dPUkQoJ2dydXl1SE9JVSYqKCcpOworU0VUIFBBU1NXT1JEIEZPUiAndXNlcidAJ2xv Y2FsaG9zdCc9IFBBU1NXT1JEKCdwYXNzd29yMDk4NyoqJicpOworU0VUIEBAZ2xvYmFsLnZhbGlk YXRlX3Bhc3N3b3JkX3NwZWNpYWxfY2hhcl9jb3VudD0gMDsKK1NFVCBQQVNTV09SRCBGT1IgJ2Jh c2VfdXNlcidAJ2xvY2FsaG9zdCc9IFBBU1NXT1JEKCdwaXVmZ2tsb2wnKTsKK1NFVCBQQVNTV09S RCBGT1IgJ2Jhc2VfdXNlcidAJ2xvY2FsaG9zdCc9IFBBU1NXT1JEKCdwYXNzd29yZDFBIycpOwor U0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX3NwZWNpYWxfY2hhcl9jb3VudD0gMTsKK1NF VCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9udW1iZXJfY291bnQ9IDE7CitTRVQgQEBnbG9i YWwudmFsaWRhdGVfcGFzc3dvcmRfbWl4ZWRfY2FzZV9jb3VudD0gMTsKK1NFVCBQQVNTV09SRCBG T1IgJ2Jhc2VfdXNlcidAJ2xvY2FsaG9zdCc9IFBBU1NXT1JEKCdlcmZ0dWlpaycpOworRVJST1Ig SFkwMDA6IFlvdXIgcGFzc3dvcmQgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY3VycmVudCBwb2xpY3kg cmVxdWlyZW1lbnRzCitTRVQgUEFTU1dPUkQgRk9SICdiYXNlX3VzZXInQCdsb2NhbGhvc3QnPSBQ QVNTV09SRCgncGFzc3dvcmQxQSMnKTsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9u dW1iZXJfY291bnQ9IDI7CitVUERBVEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9IFBBU1NXT1JE KCdwYXNzd29yZDFBIycpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitFUlJPUiBIWTAwMDogWW91 ciBwYXNzd29yZCBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjdXJyZW50IHBvbGljeSByZXF1aXJlbWVu dHMKK1VQREFURSBteXNxbC51c2VyIFNFVCBQQVNTV09SRD0gUEFTU1dPUkQoJ3Bhc3N3b3JkMTJB IycpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFzc3dv cmRfbnVtYmVyX2NvdW50PSAxOworU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX21peGVk X2Nhc2VfY291bnQ9IDI7CitVUERBVEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9IFBBU1NXT1JE KCdwYXNzd29yZDFBIycpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitFUlJPUiBIWTAwMDogWW91 ciBwYXNzd29yZCBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjdXJyZW50IHBvbGljeSByZXF1aXJlbWVu dHMKK1VQREFURSBteXNxbC51c2VyIFNFVCBQQVNTV09SRD0gUEFTU1dPUkQoJ3Bhc3N3b3JkMUFC IycpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFzc3dv cmRfbWl4ZWRfY2FzZV9jb3VudD0gMTsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9z cGVjaWFsX2NoYXJfY291bnQ9IDI7CitHUkFOVCBVU0FHRSBPTiAqLiogVE8gJ2Jhc2VfdXNlcidA J2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSAncGFzc3dvcmQxQSMnOworRVJST1IgSFkwMDA6IFlv dXIgcGFzc3dvcmQgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY3VycmVudCBwb2xpY3kgcmVxdWlyZW1l bnRzCitHUkFOVCBVU0FHRSBPTiAqLiogVE8gJ2Jhc2VfdXNlcidAJ2xvY2FsaG9zdCcgSURFTlRJ RklFRCBCWSAncGFzc3dvcmQxQSMkJzsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9z cGVjaWFsX2NoYXJfY291bnQ9IDE7CisjIE5vIGRpY3Rpb25hcnkgZmlsZSBwcmVzZW50LCBubyBk aWN0aW9uYXJ5IGNoZWNrCitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFzc3dvcmRfcG9saWN5X251 bWJlcj1TVFJPTkc7CitTRVQgUEFTU1dPUkQgRk9SICdiYXNlX3VzZXInQCdsb2NhbGhvc3QnPSBQ QVNTV09SRCgncGFzc3dvcmQxQSMnKTsKK1VQREFURSBteXNxbC51c2VyIFNFVCBQQVNTV09SRD0g UEFTU1dPUkQoJ3Bhc3N3b3JkMUEjJykgV0hFUkUgdXNlcj0nYmFzZV91c2VyJzsKK1VOSU5TVEFM TCBQTFVHSU4gdmFsaWRhdGVfcGFzc3dvcmQ7CisjIHJlc3RhcnRpbmcgdGhlIHNlcnZlciB3aXRo IGRpY3Rpb25hcnkgZmlsZS4KKyMgUmVzdGFydCBzZXJ2ZXIuCitJTlNUQUxMIFBMVUdJTiB2YWxp ZGF0ZV9wYXNzd29yZCBTT05BTUUgJ3ZhbGlkYXRlX3Bhc3N3b3JkLnNvJzsKKyMgcGFzc3dvcmQg cG9saWN5IHN0cm9uZworIyBkZWZhdWx0X2ZpbGUgOiBkaWN0aW9uYXJ5LnR4dAorU0VUIEBAZ2xv YmFsLnZhbGlkYXRlX3Bhc3N3b3JkX3BvbGljeV9udW1iZXI9U1RST05HOworQ1JFQVRFIFVTRVIg J3VzZXInQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgJ3Bhc3N3b3JkJzsKK0VSUk9SIEhZMDAw OiBZb3VyIHBhc3N3b3JkIGRvZXMgbm90IHNhdGlzZnkgdGhlIGN1cnJlbnQgcG9saWN5IHJlcXVp cmVtZW50cworU0VUIFBBU1NXT1JEIEZPUiAnYmFzZV91c2VyJ0AnbG9jYWxob3N0Jz0gUEFTU1dP UkQoJ3Bhc3N3b3JkMUEjJyk7CitFUlJPUiBIWTAwMDogWW91ciBwYXNzd29yZCBkb2VzIG5vdCBz YXRpc2Z5IHRoZSBjdXJyZW50IHBvbGljeSByZXF1aXJlbWVudHMKK1VQREFURSBteXNxbC51c2Vy IFNFVCBQQVNTV09SRD0gUEFTU1dPUkQoJ3Bhc3MxMjM0NUEjJykgV0hFUkUgdXNlcj0nYmFzZV91 c2VyJzsKK0VSUk9SIEhZMDAwOiBZb3VyIHBhc3N3b3JkIGRvZXMgbm90IHNhdGlzZnkgdGhlIGN1 cnJlbnQgcG9saWN5IHJlcXVpcmVtZW50cworVVBEQVRFIG15c3FsLnVzZXIgU0VUIFBBU1NXT1JE PSBQQVNTV09SRCgncGFzczAwMDBBIycpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitFUlJPUiBI WTAwMDogWW91ciBwYXNzd29yZCBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjdXJyZW50IHBvbGljeSBy ZXF1aXJlbWVudHMKK0dSQU5UIFVTQUdFIE9OICouKiBUTyAnYmFzZV91c2VyJ0AnbG9jYWxob3N0 JyBJREVOVElGSUVEIEJZICdQQTAwd3JkISMnOworIyB0ZXN0IGZvciBwYXNzd29yZF92YWxpZGF0 ZV9zdHJlbmd0aCBmdW5jdGlvbgorU0VMRUNUIFZBTElEQVRFX1BBU1NXT1JEX1NUUkVOR1RIKCdw YXNzd29yZCcsIDApOworRVJST1IgNDIwMDA6IEluY29ycmVjdCBwYXJhbWV0ZXIgY291bnQgaW4g dGhlIGNhbGwgdG8gbmF0aXZlIGZ1bmN0aW9uICdWQUxJREFURV9QQVNTV09SRF9TVFJFTkdUSCcK K1NFTEVDVCBWQUxJREFURV9QQVNTV09SRF9TVFJFTkdUSCgpOworRVJST1IgNDIwMDA6IEluY29y cmVjdCBwYXJhbWV0ZXIgY291bnQgaW4gdGhlIGNhbGwgdG8gbmF0aXZlIGZ1bmN0aW9uICdWQUxJ REFURV9QQVNTV09SRF9TVFJFTkdUSCcKK1NFTEVDVCBWQUxJREFURV9QQVNTV09SRF9TVFJFTkdU SCgnJyk7CitWQUxJREFURV9QQVNTV09SRF9TVFJFTkdUSCgnJykKKzAKK1NFTEVDVCBWQUxJREFU RV9QQVNTV09SRF9TVFJFTkdUSCgncGFzcycpOworVkFMSURBVEVfUEFTU1dPUkRfU1RSRU5HVEgo J3Bhc3MnKQorMjUKK1NFTEVDVCBWQUxJREFURV9QQVNTV09SRF9TVFJFTkdUSCgncGFzc3dvcmQn KTsKK1ZBTElEQVRFX1BBU1NXT1JEX1NUUkVOR1RIKCdwYXNzd29yZCcpCis1MAorU0VMRUNUIFZB TElEQVRFX1BBU1NXT1JEX1NUUkVOR1RIKCdwYXNzd29yZDAwMDAnKTsKK1ZBTElEQVRFX1BBU1NX T1JEX1NUUkVOR1RIKCdwYXNzd29yZDAwMDAnKQorNTAKK1NFTEVDVCBWQUxJREFURV9QQVNTV09S RF9TVFJFTkdUSCgncGFzc3dvcmQxQSMnKTsKK1ZBTElEQVRFX1BBU1NXT1JEX1NUUkVOR1RIKCdw YXNzd29yZDFBIycpCis3NQorU0VMRUNUIFZBTElEQVRFX1BBU1NXT1JEX1NUUkVOR1RIKCdQQTEy d3JkISMnKTsKK1ZBTElEQVRFX1BBU1NXT1JEX1NUUkVOR1RIKCdQQTEyd3JkISMnKQorMTAwCitT RUxFQ1QgVkFMSURBVEVfUEFTU1dPUkRfU1RSRU5HVEgoJ1BBMDB3cmQhIycpOworVkFMSURBVEVf UEFTU1dPUkRfU1RSRU5HVEgoJ1BBMDB3cmQhIycpCisxMDAKK1NFVCBOQU1FUyAndWppcyc7CitT RUxFQ1QgVkFMSURBVEVfUEFTU1dPUkRfU1RSRU5HVEgoJ1BBMTJ3cmQhIycpOworVkFMSURBVEVf UEFTU1dPUkRfU1RSRU5HVEgoJ1BBMTJ3cmQhIycpCisxMDAKK1NFVCBAQGdsb2JhbC52YWxpZGF0 ZV9wYXNzd29yZF9wb2xpY3lfbnVtYmVyPU1FRElVTTsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9w YXNzd29yZF9wb2xpY3lfbnVtYmVyPUxPVzsKK0VSUk9SIDQyMDAwOiBBY2Nlc3MgZGVuaWVkOyB5 b3UgbmVlZCAoYXQgbGVhc3Qgb25lIG9mKSB0aGUgU1VQRVIgcHJpdmlsZWdlKHMpIGZvciB0aGlz IG9wZXJhdGlvbgorU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX2xlbmd0aD0gNDsKK0VS Uk9SIDQyMDAwOiBBY2Nlc3MgZGVuaWVkOyB5b3UgbmVlZCAoYXQgbGVhc3Qgb25lIG9mKSB0aGUg U1VQRVIgcHJpdmlsZWdlKHMpIGZvciB0aGlzIG9wZXJhdGlvbgorU0VUIEBAZ2xvYmFsLnZhbGlk YXRlX3Bhc3N3b3JkX3NwZWNpYWxfY2hhcl9jb3VudD0gMDsKK0VSUk9SIDQyMDAwOiBBY2Nlc3Mg ZGVuaWVkOyB5b3UgbmVlZCAoYXQgbGVhc3Qgb25lIG9mKSB0aGUgU1VQRVIgcHJpdmlsZWdlKHMp IGZvciB0aGlzIG9wZXJhdGlvbgorU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX21peGVk X2Nhc2VfY291bnQ9IDA7CitFUlJPUiA0MjAwMDogQWNjZXNzIGRlbmllZDsgeW91IG5lZWQgKGF0 IGxlYXN0IG9uZSBvZikgdGhlIFNVUEVSIHByaXZpbGVnZShzKSBmb3IgdGhpcyBvcGVyYXRpb24K K0NSRUFURSBVU0VSICd1c2VyMidAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSAncGFzc3dvcmQn OworRVJST1IgSFkwMDA6IFlvdXIgcGFzc3dvcmQgZG9lcyBub3Qgc2F0aXNmeSB0aGUgY3VycmVu dCBwb2xpY3kgcmVxdWlyZW1lbnRzCitDUkVBVEUgVVNFUiAndXNlcjInQCdsb2NhbGhvc3QnIElE RU5USUZJRUQgQlkgJ1BBMDB3cmQhIyc7CitVUERBVEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9 IFBBU1NXT1JEKCdwYXNzd29yZCcpIFdIRVJFIHVzZXI9J3VzZXIyJzsKK0VSUk9SIEhZMDAwOiBZ b3VyIHBhc3N3b3JkIGRvZXMgbm90IHNhdGlzZnkgdGhlIGN1cnJlbnQgcG9saWN5IHJlcXVpcmVt ZW50cworVVBEQVRFIG15c3FsLnVzZXIgU0VUIFBBU1NXT1JEPSBQQVNTV09SRCgnUEEwMHdyZCEj JykgV0hFUkUgdXNlcj0ndXNlcjInOworRFJPUCBVU0VSICd1c2VyMidAJ2xvY2FsaG9zdCc7CitE Uk9QIFVTRVIgJ2Jhc2VfdXNlcidAJ2xvY2FsaG9zdCc7CitEUk9QIFVTRVIgJ3VzZXIxJ0AnbG9j YWxob3N0JzsKK0RST1AgVVNFUiAndXNlcidAJ2xvY2FsaG9zdCc7CitVTklOU1RBTEwgUExVR0lO IHZhbGlkYXRlX3Bhc3N3b3JkOwoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3QvdC92YWxpZGF0 ZV9wYXNzd29yZF9wbHVnaW4tbWFzdGVyLm9wdCcKLS0tIGEvbXlzcWwtdGVzdC90L3ZhbGlkYXRl X3Bhc3N3b3JkX3BsdWdpbi1tYXN0ZXIub3B0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysr IGIvbXlzcWwtdGVzdC90L3ZhbGlkYXRlX3Bhc3N3b3JkX3BsdWdpbi1tYXN0ZXIub3B0CTIwMTIt MDUtMjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTAsMCArMSBAQAorJFZBTElEQVRFX1BBU1NXT1JEX09Q VAoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3QvdC92YWxpZGF0ZV9wYXNzd29yZF9wbHVnaW4u dGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3ZhbGlkYXRlX3Bhc3N3b3JkX3BsdWdpbi50ZXN0CTE5 NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L3ZhbGlkYXRlX3Bhc3N3 b3JkX3BsdWdpbi50ZXN0CTIwMTItMDUtMjQgMTA6NTY6NTIgKzAwMDAKQEAgLTAsMCArMSwyMDAg QEAKKy0tc291cmNlIGluY2x1ZGUvbm90X2VtYmVkZGVkLmluYworLS1zb3VyY2UgaW5jbHVkZS9o YXZlX3ZhbGlkYXRlX3Bhc3N3b3JkX3BsdWdpbi5pbmMKKworbGV0ICRNWVNRTF9FUlJNU0dfQkFT RURJUj1gc2VsZWN0IEBAbGNfbWVzc2FnZXNfZGlyYDsKKworIyBwbHVnaW4gaXMgbm90IGluc3Rh bGxlZCBzbyBldmVuICdwYXNzJyAodmVyeSB3ZWFrKQorIyBpcyBhY2NlcHRlZCBhcyBhIHBhc3N3 b3JkCitDUkVBVEUgVVNFUiAnYmFzZV91c2VyJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZICdw YXNzJzsKK0dSQU5UIEFMTCBPTiBteXNxbC4qIFRPICd1c2VyMSdAJ2xvY2FsaG9zdCcgSURFTlRJ RklFRCBCWSAncGFzcyc7CisKKy0tcmVwbGFjZV9yZWdleCAvXC5kbGwvLnNvLworZXZhbCBJTlNU QUxMIFBMVUdJTiB2YWxpZGF0ZV9wYXNzd29yZCBTT05BTUUgJyRWQUxJREFURV9QQVNTV09SRCc7 CisKKyMgdGVzdCBmb3IgYWxsIHRoZSB0aHJlZSBwYXNzd29yZCBwb2xpY3kKKyMgcG9saWN5OiBM T1csIE1FRElVTSwgU1RST05HCisKKy0tZWNobyAjIHBhc3N3b3JkIHBvbGljeSBMT1cgKHdoaWNo IG9ubHkgY2hlY2sgZm9yIHBhc3N3b3JkIGxlbmd0aCkKKy0tZWNobyAjIGRlZmF1bHQgY2FzZTog cGFzc3dvcmQgbGVuZ3RoIHNob3VsZCBiZSBtaW5pbXVtIDgKKworU0VUIEBAZ2xvYmFsLnZhbGlk YXRlX3Bhc3N3b3JkX3BvbGljeV9udW1iZXI9TE9XOworLS1lcnJvciBFUl9OT1RfVkFMSURfUEFT U1dPUkQKK0NSRUFURSBVU0VSICd1c2VyJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZICcnOwor LS1lcnJvciBFUl9OT1RfVkFMSURfUEFTU1dPUkQKK1NFVCBQQVNTV09SRCBGT1IgJ2Jhc2VfdXNl cidAJ2xvY2FsaG9zdCc9IFBBU1NXT1JEKCdhd2VnJyk7CitTRVQgUEFTU1dPUkQgRk9SICdiYXNl X3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGFzc3dvcmQzJyk7CitTRVQgUEFTU1dPUkQg Rk9SICdiYXNlX3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGFzc3dvcmQnKTsKKy0tZXJy b3IgRVJfTk9UX1ZBTElEX1BBU1NXT1JECitTRVQgUEFTU1dPUkQgRk9SICdiYXNlX3VzZXInQCds b2NhbGhvc3QnPSBQQVNTV09SRCgncGFzc3dvcicpOworU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bh c3N3b3JkX2xlbmd0aD0gMTI7CistLWVycm9yIEVSX05PVF9WQUxJRF9QQVNTV09SRAorVVBEQVRF IG15c3FsLnVzZXIgU0VUIFBBU1NXT1JEPSBQQVNTV09SRCgncGFzc3dvcmQnKSBXSEVSRSB1c2Vy PSdiYXNlX3VzZXInOworLS1lcnJvciBFUl9OT1RfVkFMSURfUEFTU1dPUkQKK1VQREFURSBteXNx bC51c2VyIFNFVCBQQVNTV09SRD0gUEFTU1dPUkQoJ2Fmcmd0eWhscDk4JykgV0hFUkUgdXNlcj0n YmFzZV91c2VyJzsKK1VQREFURSBteXNxbC51c2VyIFNFVCBQQVNTV09SRD0gUEFTU1dPUkQoJ2l1 eXQ1NjduYnZmQScpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitHUkFOVCBVU0FHRSBPTiAqLiog VE8gJ2Jhc2VfdXNlcidAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSAncGFzc3dvcmQxMjM0JzsK K1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9sZW5ndGg9IDA7CitVUERBVEUgbXlzcWwu dXNlciBTRVQgUEFTU1dPUkQ9IFBBU1NXT1JEKCcnKSBXSEVSRSB1c2VyPSdiYXNlX3VzZXInOwor VVBEQVRFIG15c3FsLnVzZXIgU0VUIFBBU1NXT1JEPSBQQVNTV09SRCgncCcpIFdIRVJFIHVzZXI9 J2Jhc2VfdXNlcic7CitVUERBVEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9IFBBU1NXT1JEKCdw YXNzd29yZCcpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitTRVQgQEBnbG9iYWwudmFsaWRhdGVf cGFzc3dvcmRfbGVuZ3RoPSAtMjsKKy0tIEVycm9yIEVSX1dST05HX1RZUEVfRk9SX1ZBUgorU0VU IEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX2xlbmd0aD0gMy41OworCisjIHRlc3QgdG8gY2hl Y2sgbWF4aW11bSB2YWx1ZSBvZiBwYXNzd29yZF9sZW5ndGgKKworU0VUIEBAZ2xvYmFsLnZhbGlk YXRlX3Bhc3N3b3JkX2xlbmd0aD0gMjE0NzQ4MzY0NzsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9w YXNzd29yZF9sZW5ndGg9IDIxNDc0ODM2NDg7CitQUkVQQVJFIHN0bXQxIEZST00gJ1VQREFURSBt eXNxbC51c2VyIFNFVCBQQVNTV09SRD0oPykgd2hlcmUgVVNFUiA9ID8nOworU0VUIEBhID0gUkVQ RUFUKCdhJywyMTQ3NDgzNjQ3KTsKK1NFVCBAYiA9ICd1c2VyQGxvY2FsaG9zdCc7CitFWEVDVVRF IHN0bXQxIFVTSU5HIEBhLEBiOworREVBTExPQ0FURSBQUkVQQVJFIHN0bXQxOworU0VUIEBAZ2xv YmFsLnZhbGlkYXRlX3Bhc3N3b3JkX2xlbmd0aD0gNDI5NDk2NzI5NTsKK1NFVCBAQGdsb2JhbC52 YWxpZGF0ZV9wYXNzd29yZF9sZW5ndGg9IDg7CitQUkVQQVJFIHN0bXQxIEZST00gJ1VQREFURSBt eXNxbC51c2VyIFNFVCBQQVNTV09SRD0oPykgd2hlcmUgVVNFUiA9ID8nOworU0VUIEBhID0gUkVQ RUFUKCdhJywxMDQ4NTc2KTsKK1NFVCBAYiA9ICd1c2VyQGxvY2FsaG9zdCc7CitFWEVDVVRFIHN0 bXQxIFVTSU5HIEBhLEBiOworREVBTExPQ0FURSBQUkVQQVJFIHN0bXQxOworCistLWVjaG8gIyBw YXNzd29yZCBwb2xpY3kgTUVESVVNIChjaGVjayBmb3IgbWl4ZWRfY2FzZSwgZGlnaXRzLCBzcGVj aWFsX2NoYXJzKQorLS1lY2hvICMgZGVmYXVsdCBjYXNlIDogYXRsZWFzdCAxIG1peGVkX2Nhc2Us IDEgZGlnaXQsIDEgc3BlY2lhbF9jaGFyCisKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29y ZF9wb2xpY3lfbnVtYmVyPU1FRElVTTsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9u dW1iZXJfY291bnQ9IDA7CitDUkVBVEUgVVNFUiAndXNlcidAJ2xvY2FsaG9zdCcgSURFTlRJRklF RCBCWSAnYWVkZm9pQVNFJCUnOworLS1lcnJvciBFUl9OT1RfVkFMSURfUEFTU1dPUkQKK1NFVCBQ QVNTV09SRCBGT1IgJ3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgnZm9pdWl1eXRkNzgnKTsK K1NFVCBQQVNTV09SRCBGT1IgJ3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGFzcmV0cnlG UkdIJl45OCcpOworU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX21peGVkX2Nhc2VfY291 bnQ9IDA7CistLWVycm9yIEVSX05PVF9WQUxJRF9QQVNTV09SRAorQ1JFQVRFIFVTRVIgJ3VzZXIn QCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgJ2FlZFNXRWhqdWknOworU0VUIFBBU1NXT1JEIEZP UiAndXNlcidAJ2xvY2FsaG9zdCc9IFBBU1NXT1JEKCdncnV5dUhPSVUmKignKTsKK1NFVCBQQVNT V09SRCBGT1IgJ3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGFzc3dvcjA5ODcqKiYnKTsK K1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9zcGVjaWFsX2NoYXJfY291bnQ9IDA7CitT RVQgUEFTU1dPUkQgRk9SICdiYXNlX3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGl1Zmdr bG9sJyk7CitTRVQgUEFTU1dPUkQgRk9SICdiYXNlX3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09S RCgncGFzc3dvcmQxQSMnKTsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9zcGVjaWFs X2NoYXJfY291bnQ9IDE7CitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFzc3dvcmRfbnVtYmVyX2Nv dW50PSAxOworU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX21peGVkX2Nhc2VfY291bnQ9 IDE7CistLWVycm9yIEVSX05PVF9WQUxJRF9QQVNTV09SRAorU0VUIFBBU1NXT1JEIEZPUiAnYmFz ZV91c2VyJ0AnbG9jYWxob3N0Jz0gUEFTU1dPUkQoJ2VyZnR1aWlrJyk7CitTRVQgUEFTU1dPUkQg Rk9SICdiYXNlX3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGFzc3dvcmQxQSMnKTsKK1NF VCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9udW1iZXJfY291bnQ9IDI7CistLWVycm9yIEVS X05PVF9WQUxJRF9QQVNTV09SRAorVVBEQVRFIG15c3FsLnVzZXIgU0VUIFBBU1NXT1JEPSBQQVNT V09SRCgncGFzc3dvcmQxQSMnKSBXSEVSRSB1c2VyPSdiYXNlX3VzZXInOworVVBEQVRFIG15c3Fs LnVzZXIgU0VUIFBBU1NXT1JEPSBQQVNTV09SRCgncGFzc3dvcmQxMkEjJykgV0hFUkUgdXNlcj0n YmFzZV91c2VyJzsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9udW1iZXJfY291bnQ9 IDE7CitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFzc3dvcmRfbWl4ZWRfY2FzZV9jb3VudD0gMjsK Ky0tZXJyb3IgRVJfTk9UX1ZBTElEX1BBU1NXT1JECitVUERBVEUgbXlzcWwudXNlciBTRVQgUEFT U1dPUkQ9IFBBU1NXT1JEKCdwYXNzd29yZDFBIycpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitV UERBVEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9IFBBU1NXT1JEKCdwYXNzd29yZDFBQiMnKSBX SEVSRSB1c2VyPSdiYXNlX3VzZXInOworU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX21p eGVkX2Nhc2VfY291bnQ9IDE7CitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFzc3dvcmRfc3BlY2lh bF9jaGFyX2NvdW50PSAyOworLS1lcnJvciBFUl9OT1RfVkFMSURfUEFTU1dPUkQKK0dSQU5UIFVT QUdFIE9OICouKiBUTyAnYmFzZV91c2VyJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZICdwYXNz d29yZDFBIyc7CitHUkFOVCBVU0FHRSBPTiAqLiogVE8gJ2Jhc2VfdXNlcidAJ2xvY2FsaG9zdCcg SURFTlRJRklFRCBCWSAncGFzc3dvcmQxQSMkJzsKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNz d29yZF9zcGVjaWFsX2NoYXJfY291bnQ9IDE7CisKKy0tZWNobyAjIE5vIGRpY3Rpb25hcnkgZmls ZSBwcmVzZW50LCBubyBkaWN0aW9uYXJ5IGNoZWNrCitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFz c3dvcmRfcG9saWN5X251bWJlcj1TVFJPTkc7CitTRVQgUEFTU1dPUkQgRk9SICdiYXNlX3VzZXIn QCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGFzc3dvcmQxQSMnKTsKK1VQREFURSBteXNxbC51c2Vy IFNFVCBQQVNTV09SRD0gUEFTU1dPUkQoJ3Bhc3N3b3JkMUEjJykgV0hFUkUgdXNlcj0nYmFzZV91 c2VyJzsKKworVU5JTlNUQUxMIFBMVUdJTiB2YWxpZGF0ZV9wYXNzd29yZDsKKworLS1lY2hvICMg cmVzdGFydGluZyB0aGUgc2VydmVyIHdpdGggZGljdGlvbmFyeSBmaWxlLgorCisjIFdyaXRlIGZp bGUgdG8gbWFrZSBteXNxbC10ZXN0LXJ1bi5wbCB3YWl0IGZvciB0aGUgc2VydmVyIHRvIHN0b3AK Ky0tZXhlYyBlY2hvICJ3YWl0IiA+ICRNWVNRTFRFU1RfVkFSRElSL3RtcC9teXNxbGQuMS5leHBl Y3QKKworIyBSZXF1ZXN0IHNodXRkb3duCistLSBzZW5kX3NodXRkb3duCisKKyMgQ2FsbCBzY3Jp cHQgdGhhdCB3aWxsIHBvbGwgdGhlIHNlcnZlciB3YWl0aW5nIGZvciBpdCB0byBkaXNhcGVhcgor LS0gc291cmNlIGluY2x1ZGUvd2FpdF91bnRpbF9kaXNjb25uZWN0ZWQuaW5jCisKKy0tZWNobyAj IFJlc3RhcnQgc2VydmVyLgorCistLWV4ZWMgZWNobyAicmVzdGFydDotLWxvb3NlLXZhbGlkYXRl X3Bhc3N3b3JkX2RpY3Rpb25hcnlfZmlsZT0kTVlTUUxfRVJSTVNHX0JBU0VESVIvZGljdGlvbmFy eS50eHQiID4gJE1ZU1FMVEVTVF9WQVJESVIvdG1wL215c3FsZC4xLmV4cGVjdAorCisjIFR1cm4g b24gcmVjb25uZWN0CistLWVuYWJsZV9yZWNvbm5lY3QKKworIyBDYWxsIHNjcmlwdCB0aGF0IHdp bGwgcG9sbCB0aGUgc2VydmVyIHdhaXRpbmcgZm9yIGl0IHRvIGJlIGJhY2sgb25saW5lIGFnYWlu CistLXNvdXJjZSBpbmNsdWRlL3dhaXRfdW50aWxfY29ubmVjdGVkX2FnYWluLmluYworCisjIFR1 cm4gb2ZmIHJlY29ubmVjdCBhZ2FpbgorLS1kaXNhYmxlX3JlY29ubmVjdAorCistLXJlcGxhY2Vf cmVnZXggL1wuZGxsLy5zby8KK2V2YWwgSU5TVEFMTCBQTFVHSU4gdmFsaWRhdGVfcGFzc3dvcmQg U09OQU1FICckVkFMSURBVEVfUEFTU1dPUkQnOworCistLWVjaG8gIyBwYXNzd29yZCBwb2xpY3kg c3Ryb25nCistLWVjaG8gIyBkZWZhdWx0X2ZpbGUgOiBkaWN0aW9uYXJ5LnR4dAorCisjIGZpbGUg c2hvdWxkIGNvbnRhaW4gMSB3b3JkIHBlciBsaW5lCisjIGVycm9yIGlmIHN1YnN0cmluZyBvZiBw YXNzd29yZCBpcyBhIGRpY3Rpb25hcnkgd29yZAorCitTRVQgQEBnbG9iYWwudmFsaWRhdGVfcGFz c3dvcmRfcG9saWN5X251bWJlcj1TVFJPTkc7CistLWVycm9yIEVSX05PVF9WQUxJRF9QQVNTV09S RAorQ1JFQVRFIFVTRVIgJ3VzZXInQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgJ3Bhc3N3b3Jk JzsKKy0tZXJyb3IgRVJfTk9UX1ZBTElEX1BBU1NXT1JECitTRVQgUEFTU1dPUkQgRk9SICdiYXNl X3VzZXInQCdsb2NhbGhvc3QnPSBQQVNTV09SRCgncGFzc3dvcmQxQSMnKTsKKy0tZXJyb3IgRVJf Tk9UX1ZBTElEX1BBU1NXT1JECitVUERBVEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9IFBBU1NX T1JEKCdwYXNzMTIzNDVBIycpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CistLWVycm9yIEVSX05P VF9WQUxJRF9QQVNTV09SRAorVVBEQVRFIG15c3FsLnVzZXIgU0VUIFBBU1NXT1JEPSBQQVNTV09S RCgncGFzczAwMDBBIycpIFdIRVJFIHVzZXI9J2Jhc2VfdXNlcic7CitHUkFOVCBVU0FHRSBPTiAq LiogVE8gJ2Jhc2VfdXNlcidAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSAnUEEwMHdyZCEjJzsK KworLS1lY2hvICMgdGVzdCBmb3IgcGFzc3dvcmRfdmFsaWRhdGVfc3RyZW5ndGggZnVuY3Rpb24K KworLS1lcnJvciBFUl9XUk9OR19QQVJBTUNPVU5UX1RPX05BVElWRV9GQ1QKK1NFTEVDVCBWQUxJ REFURV9QQVNTV09SRF9TVFJFTkdUSCgncGFzc3dvcmQnLCAwKTsKKy0tZXJyb3IgRVJfV1JPTkdf UEFSQU1DT1VOVF9UT19OQVRJVkVfRkNUCitTRUxFQ1QgVkFMSURBVEVfUEFTU1dPUkRfU1RSRU5H VEgoKTsKK1NFTEVDVCBWQUxJREFURV9QQVNTV09SRF9TVFJFTkdUSCgnJyk7CitTRUxFQ1QgVkFM SURBVEVfUEFTU1dPUkRfU1RSRU5HVEgoJ3Bhc3MnKTsKK1NFTEVDVCBWQUxJREFURV9QQVNTV09S RF9TVFJFTkdUSCgncGFzc3dvcmQnKTsKK1NFTEVDVCBWQUxJREFURV9QQVNTV09SRF9TVFJFTkdU SCgncGFzc3dvcmQwMDAwJyk7CitTRUxFQ1QgVkFMSURBVEVfUEFTU1dPUkRfU1RSRU5HVEgoJ3Bh c3N3b3JkMUEjJyk7CitTRUxFQ1QgVkFMSURBVEVfUEFTU1dPUkRfU1RSRU5HVEgoJ1BBMTJ3cmQh IycpOworU0VMRUNUIFZBTElEQVRFX1BBU1NXT1JEX1NUUkVOR1RIKCdQQTAwd3JkISMnKTsKKwor IyBUZXN0IGZvciBtdWx0aWJ5dGUgY2hhcmFjdGVyIHNldCB0aGF0IGhhdmUgZ3JlYXRlciBzaXpl IHdoZW4gY29udmVydGVkCisjIGZyb20gdXBwZXJjYXNlIHRvIGxvd2VyY2FzZS4KK1NFVCBOQU1F UyAndWppcyc7CitTRUxFQ1QgVkFMSURBVEVfUEFTU1dPUkRfU1RSRU5HVEgoJ1BBMTJ3cmQhIycp OworCisjIGRlZmF1bHQgcG9saWN5IGlzIHNldCwgYWxsIG90aGVyIHBsdWdpbiB2YXJpYWJsZXMg c2V0IHRvIGRlZmF1bHQKKyMgVGVzdCB0byBlbnN1cmUgdGhhdCBvbmx5IHRoZSBwcml2aWxlZ2Vk IHVzZXIgY2FuIGFjY2VzcyB0aGUgcGx1Z2luIHZhcmlhYmxlcworU0VUIEBAZ2xvYmFsLnZhbGlk YXRlX3Bhc3N3b3JkX3BvbGljeV9udW1iZXI9TUVESVVNOworCisjIE5ldyBjb25uZWN0aW9uCitj b25uZWN0IChwbHVnX2Nvbixsb2NhbGhvc3QsdXNlcjEscGFzcyk7CistLWVycm9yIEVSX1NQRUNJ RklDX0FDQ0VTU19ERU5JRURfRVJST1IKK1NFVCBAQGdsb2JhbC52YWxpZGF0ZV9wYXNzd29yZF9w b2xpY3lfbnVtYmVyPUxPVzsKKy0tZXJyb3IgRVJfU1BFQ0lGSUNfQUNDRVNTX0RFTklFRF9FUlJP UgorU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX2xlbmd0aD0gNDsKKy0tZXJyb3IgRVJf U1BFQ0lGSUNfQUNDRVNTX0RFTklFRF9FUlJPUgorU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3 b3JkX3NwZWNpYWxfY2hhcl9jb3VudD0gMDsKKy0tZXJyb3IgRVJfU1BFQ0lGSUNfQUNDRVNTX0RF TklFRF9FUlJPUgorU0VUIEBAZ2xvYmFsLnZhbGlkYXRlX3Bhc3N3b3JkX21peGVkX2Nhc2VfY291 bnQ9IDA7CisjIHVzZXIgaGFzIHRoZSB1cGRhdGUvY3JlYXRlIHByaXZpbGVnZSBidXQgbmVlZHMg dG8gc2F0aXNmeSBwYXNzd29yZCBwb2xpY3kKKyMgdG8gdXBkYXRlL2NyZWF0ZSBuZXcgYWNjb3Vu dCAKKy0tZXJyb3IgRVJfTk9UX1ZBTElEX1BBU1NXT1JECitDUkVBVEUgVVNFUiAndXNlcjInQCds b2NhbGhvc3QnIElERU5USUZJRUQgQlkgJ3Bhc3N3b3JkJzsKK0NSRUFURSBVU0VSICd1c2VyMidA J2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSAnUEEwMHdyZCEjJzsKKy0tZXJyb3IgRVJfTk9UX1ZB TElEX1BBU1NXT1JECitVUERBVEUgbXlzcWwudXNlciBTRVQgUEFTU1dPUkQ9IFBBU1NXT1JEKCdw YXNzd29yZCcpIFdIRVJFIHVzZXI9J3VzZXIyJzsKK1VQREFURSBteXNxbC51c2VyIFNFVCBQQVNT V09SRD0gUEFTU1dPUkQoJ1BBMDB3cmQhIycpIFdIRVJFIHVzZXI9J3VzZXIyJzsKK0RST1AgVVNF UiAndXNlcjInQCdsb2NhbGhvc3QnOworZGlzY29ubmVjdCBwbHVnX2NvbjsKKy0tc291cmNlIGlu Y2x1ZGUvd2FpdF91bnRpbF9kaXNjb25uZWN0ZWQuaW5jCisKK2Nvbm5lY3Rpb24gZGVmYXVsdDsK K0RST1AgVVNFUiAnYmFzZV91c2VyJ0AnbG9jYWxob3N0JzsKK0RST1AgVVNFUiAndXNlcjEnQCds b2NhbGhvc3QnOworRFJPUCBVU0VSICd1c2VyJ0AnbG9jYWxob3N0JzsKK1VOSU5TVEFMTCBQTFVH SU4gdmFsaWRhdGVfcGFzc3dvcmQ7Cgo9PT0gYWRkZWQgZGlyZWN0b3J5ICdwbHVnaW4vcGFzc3dv cmRfdmFsaWRhdGlvbicKPT09IGFkZGVkIGZpbGUgJ3BsdWdpbi9wYXNzd29yZF92YWxpZGF0aW9u L0NNYWtlTGlzdHMudHh0JwotLS0gYS9wbHVnaW4vcGFzc3dvcmRfdmFsaWRhdGlvbi9DTWFrZUxp c3RzLnR4dAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL3BsdWdpbi9wYXNzd29yZF92 YWxpZGF0aW9uL0NNYWtlTGlzdHMudHh0CTIwMTItMDUtMjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTAs MCArMSwxNyBAQAorIyBDb3B5cmlnaHQgwqkgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxp YXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZS4KKyMgCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjIAorIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3Vu ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy MTEwLTEzMDEgVVNBCisKK01ZU1FMX0FERF9QTFVHSU4odmFsaWRhdGVfcGFzc3dvcmQgdmFsaWRh dGVfcGFzc3dvcmQuY2MKKyAgICBNT0RVTEVfT05MWSkKCj09PSBhZGRlZCBmaWxlICdwbHVnaW4v cGFzc3dvcmRfdmFsaWRhdGlvbi92YWxpZGF0ZV9wYXNzd29yZC5jYycKLS0tIGEvcGx1Z2luL3Bh c3N3b3JkX3ZhbGlkYXRpb24vdmFsaWRhdGVfcGFzc3dvcmQuY2MJMTk3MC0wMS0wMSAwMDowMDow MCArMDAwMAorKysgYi9wbHVnaW4vcGFzc3dvcmRfdmFsaWRhdGlvbi92YWxpZGF0ZV9wYXNzd29y ZC5jYwkyMDEyLTA1LTIzIDA5OjU0OjQwICswMDAwCkBAIC0wLDAgKzEsMzE5IEBACisvKiBDb3B5 cmlnaHQgwqkgMjAxMiwgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisKKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICAgRm91bmRhdGlvbiwgSW5jLiwg NTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgIFVTQSAq LworCisjaW5jbHVkZSA8bXlfc3lzLmg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPG15 c3FsL3BsdWdpbl92YWxpZGF0ZV9wYXNzd29yZC5oPgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRl IDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisKKy8qICAKKyAgX19hdHRyaWJ1dGVf XyhBKSBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciBXaW5kb3dzIGVsc2UgY29tcGxpZXIKKyAgZG8g bm90IHJlY29nbmlzZSBpdC4gQXJndW1lbnQgaW4gcGx1Z2luX2luaXQgYW5kIHBsdWdpbl9kZWlu aXQKKyAgVXNlZCBpbiBvdGhlciBwbHVnaW5zIGFzIHdlbGwuCisqLworI2lmICFkZWZpbmVkKF9f YXR0cmlidXRlX18pICYmIChkZWZpbmVkKF9fY3BsdXNwbHVzKSB8fCAhZGVmaW5lZChfX0dOVUNf XykgIHx8IF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9SX18gPCA4KQorI2RlZmluZSBfX2F0 dHJpYnV0ZV9fKEEpCisjZW5kaWYKKworI2RlZmluZSBNQVhfRElDVElPTkFSWV9GSUxFX0xFTkdU SCAgICAxMDI0ICogMTAyNAorI2RlZmluZSBQQVNTV09SRF9TQ09SRSAgICAgICAgICAgICAgICAy NQorI2RlZmluZSBNSU5fRElDVElPTkFSWV9XT1JEX0xFTkdUSCAgICA0CisjZGVmaW5lIE1BWF9Q QVNTV09SRF9MRU5HVEggICAgICAgICAgIDEwMAorCisvKiAgCisgIFRoZXNlIGFyZSB0aGUgMyBw YXNzd29yZCBwb2xpY2llcyB0aGF0IHRoaXMgcGx1Z2luIGFsbG93IHRvIHNldAorICBhbmQgY29u ZmlndXJlIGFzIHBlciB0aGUgcmVxdWlyZW1lbnRzLgorKi8KKworZW51bSBwYXNzd29yZF9wb2xp Y3lfZW51bSB7IFBBU1NXT1JEX1BPTElDWV9MT1csCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUEFTU1dPUkRfUE9MSUNZX01FRElVTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ QVNTV09SRF9QT0xJQ1lfU1RST05HCit9OworCitzdGF0aWMgY29uc3QgY2hhciogcG9saWN5X25h bWVzW10gPSB7ICJMT1ciLCAiTUVESVVNIiwgIlNUUk9ORyIsIE51bGxTIH07CisKK3N0YXRpYyBU WVBFTElCIHBhc3N3b3JkX3BvbGljeV90eXBlbGliX3QgPSB7CisgICAgICAgIGFycmF5X2VsZW1l bnRzKHBvbGljeV9uYW1lcykgLSAxLAorICAgICAgICAicGFzc3dvcmRfcG9saWN5X3R5cGVsaWJf dCIsCisgICAgICAgIHBvbGljeV9uYW1lcywKKyAgICAgICAgTlVMTAorfTsKKwordHlwZWRlZiBz dGQ6OnN0cmluZyBzdHJpbmdfdHlwZTsKK3R5cGVkZWYgc3RkOjpzZXQ8c3RyaW5nX3R5cGU+IHNl dF90eXBlOworc3RhdGljIHNldF90eXBlIGRpY3Rpb25hcnlfd29yZHM7CisKK3N0YXRpYyBpbnQg dmFsaWRhdGVfcGFzc3dvcmRfbGVuZ3RoOworc3RhdGljIGludCB2YWxpZGF0ZV9wYXNzd29yZF9u dW1iZXJfY291bnQ7CitzdGF0aWMgaW50IHZhbGlkYXRlX3Bhc3N3b3JkX21peGVkX2Nhc2VfY291 bnQ7CitzdGF0aWMgaW50IHZhbGlkYXRlX3Bhc3N3b3JkX3NwZWNpYWxfY2hhcl9jb3VudDsKK3N0 YXRpYyB1bG9uZyB2YWxpZGF0ZV9wYXNzd29yZF9wb2xpY3lfbnVtYmVyOworc3RhdGljIGNoYXIg KnZhbGlkYXRlX3Bhc3N3b3JkX2RpY3Rpb25hcnlfZmlsZTsKKworLyogVG8gcmVhZCBkaWN0aW9u YXJ5IGZpbGUgaW50byBzdGQ6OnNldCAqLworc3RhdGljIHZvaWQgcmVhZF9kaWN0aW9uYXJ5X2Zp bGUoKQoreworICBzdHJpbmdfdHlwZSB3b3JkczsKKyAgbG9uZyBmaWxlX2xlbmd0aDsKKworICBp ZiAodmFsaWRhdGVfcGFzc3dvcmRfZGljdGlvbmFyeV9maWxlID09IE5VTEwpCisgICAgcmV0dXJu OworICBzdGQ6Omlmc3RyZWFtIGRpY3Rpb25hcnlfc3RyZWFtKHZhbGlkYXRlX3Bhc3N3b3JkX2Rp Y3Rpb25hcnlfZmlsZSk7CisgIGlmICghZGljdGlvbmFyeV9zdHJlYW0pCisgICAgcmV0dXJuOwor ICBkaWN0aW9uYXJ5X3N0cmVhbS5zZWVrZygwLCBzdGQ6Omlvczo6ZW5kKTsKKyAgZmlsZV9sZW5n dGg9IGRpY3Rpb25hcnlfc3RyZWFtLnRlbGxnKCk7CisgIGRpY3Rpb25hcnlfc3RyZWFtLnNlZWtn KDAsIHN0ZDo6aW9zOjpiZWcpOworICBpZiAoZmlsZV9sZW5ndGggPiBNQVhfRElDVElPTkFSWV9G SUxFX0xFTkdUSCkKKyAgeworICAgIGRpY3Rpb25hcnlfc3RyZWFtLmNsb3NlKCk7CisgICAgcmV0 dXJuOworICB9CisgIHdoaWxlIChkaWN0aW9uYXJ5X3N0cmVhbS5nb29kKCkpCisgIHsKKyAgICBz dGQ6OmdldGxpbmUoZGljdGlvbmFyeV9zdHJlYW0sIHdvcmRzKTsKKyAgICBkaWN0aW9uYXJ5X3dv cmRzLmluc2VydCh3b3Jkcyk7CisgIH0KKyAgZGljdGlvbmFyeV9zdHJlYW0uY2xvc2UoKTsKK30K KworLyogQ2xlYXIgd29yZHMgZnJvbSBzdGQ6OnNldCAqLworc3RhdGljIHZvaWQgZnJlZV9kaWN0 aW9uYXJ5X2ZpbGUoKQoreworICBpZiAoIWRpY3Rpb25hcnlfd29yZHMuZW1wdHkoKSkKKyAgICBk aWN0aW9uYXJ5X3dvcmRzLmNsZWFyKCk7Cit9CisKKy8qICAKKyAgQ2hlY2tzIHdlYXRoZXIgcGFz c3dvcmQgb3Igc3Vic3RyaW5nIG9mIHBhc3N3b3JkCisgIGlzIHByZXNlbnQgaW4gZGljdGlvbmFy eSBmaWxlIHN0b3JlZCBhcyBzdGQ6OnNldAorKi8KK3N0YXRpYyBpbnQgdmFsaWRhdGVfZGljdGlv bmFyeV9jaGVjayhteXNxbF9zdHJpbmdfaGFuZGxlIHBhc3N3b3JkKQoreworICBpbnQgbGVuZ3Ro OworICBpbnQgZXJyb3I9IDA7CisgIGNoYXIgKmJ1ZmZlcjsKKyAgbXlzcWxfc3RyaW5nX2hhbmRs ZSBsb3dlcl9zdHJpbmdfaGFuZGxlPSBteXNxbF9zdHJpbmdfdG9fbG93ZXJjYXNlKHBhc3N3b3Jk KTsKKyAgaWYgKCEoYnVmZmVyPSAoY2hhciopIG1hbGxvYyhNQVhfUEFTU1dPUkRfTEVOR1RIKSkp CisgICAgcmV0dXJuICgwKTsKKworICBpZiAoKGxlbmd0aD0gbXlzcWxfc3RyaW5nX2NvbnZlcnRf dG9fY2hhcl9wdHIobG93ZXJfc3RyaW5nX2hhbmRsZSwgInV0ZjgiLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsICZlcnJvcikpID4gMCAmJiBlcnJvciA9 PSAwKQorICAgICBidWZmZXJbbGVuZ3RoXT0gJ1wwJzsKKworICBpbnQgc3Vic3RyX3Bvcz0gMDsK KyAgaW50IHN1YnN0cl9sZW5ndGg9IGxlbmd0aDsKKyAgc3RyaW5nX3R5cGUgcGFzc3dvcmRfc3Ry PSAoY29uc3QgY2hhciAqKWJ1ZmZlcjsKKyAgc3RyaW5nX3R5cGUgcGFzc3dvcmRfc3Vic3RyOwor ICBzZXRfdHlwZTo6aXRlcmF0b3IgaXRyOworICAvKiAgCisgICAgc3RkOjpzZXQgYXMgY29udGFp bmVyIHN0b3JlcyB0aGUgZGljdGlvbmFyeSB3b3JkcywKKyAgICBiaW5hcnkgY29tcGFyaXNvbiBi ZXR3ZWVuIGRpY3Rpb25hcnkgd29yZHMgYW5kIHBhc3N3b3JkCisgICovCisgIGlmICghZGljdGlv bmFyeV93b3Jkcy5lbXB0eSgpKQorICB7CisgICAgd2hpbGUgKHN1YnN0cl9sZW5ndGggPj0gTUlO X0RJQ1RJT05BUllfV09SRF9MRU5HVEgpCisgICAgeworICAgICAgc3Vic3RyX3Bvcz0gMDsKKyAg ICAgIHdoaWxlIChzdWJzdHJfcG9zICsgc3Vic3RyX2xlbmd0aCA8PSBsZW5ndGgpCisgICAgICB7 CisgICAgICAgIHBhc3N3b3JkX3N1YnN0cj0gcGFzc3dvcmRfc3RyLnN1YnN0cihzdWJzdHJfcG9z LCBzdWJzdHJfbGVuZ3RoKTsKKyAgICAgICAgaXRyPSBkaWN0aW9uYXJ5X3dvcmRzLmZpbmQocGFz c3dvcmRfc3Vic3RyKTsKKyAgICAgICAgaWYgKGl0ciAhPSBkaWN0aW9uYXJ5X3dvcmRzLmVuZCgp KQorICAgICAgICB7CisgICAgICAgICAgZnJlZShidWZmZXIpOworICAgICAgICAgIHJldHVybiAo MCk7CisgICAgICAgIH0KKyAgICAgICAgc3Vic3RyX3BvcysrOworICAgICAgfQorICAgICAgc3Vi c3RyX2xlbmd0aC0tOworICAgIH0KKyAgfQorICBmcmVlKGJ1ZmZlcik7CisgIHJldHVybiAoMSk7 Cit9CisKK3N0YXRpYyBpbnQgdmFsaWRhdGVfcGFzc3dvcmRfcG9saWN5KG15c3FsX3N0cmluZ19o YW5kbGUgcGFzc3dvcmQsIGludCBwb2xpY3kpCit7CisgIGludCBoYXNfZGlnaXQ9IDA7CisgIGlu dCBoYXNfbG93ZXI9IDA7CisgIGludCBoYXNfdXBwZXI9IDA7CisgIGludCBoYXNfc3BlY2lhbF9j aGFycz0gMDsKKyAgaW50IG5fY2hhcnM9IDA7CisgIG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5k bGUgaXRlcjsKKworICBpdGVyID0gbXlzcWxfc3RyaW5nX2dldF9pdGVyYXRvcihwYXNzd29yZCk7 CisgIHdoaWxlKG15c3FsX3N0cmluZ19pdGVyYXRvcl9uZXh0KGl0ZXIpKQorICB7CisgICAgbl9j aGFycysrOworICAgIGlmIChwb2xpY3kgPiBQQVNTV09SRF9QT0xJQ1lfTE9XKQorICAgIHsKKyAg ICAgIGlmIChteXNxbF9zdHJpbmdfaXRlcmF0b3JfaXNsb3dlcihpdGVyKSkKKyAgICAgICAgaGFz X2xvd2VyKys7CisgICAgICBlbHNlIGlmIChteXNxbF9zdHJpbmdfaXRlcmF0b3JfaXN1cHBlcihp dGVyKSkKKyAgICAgICAgaGFzX3VwcGVyKys7CisgICAgICBlbHNlIGlmIChteXNxbF9zdHJpbmdf aXRlcmF0b3JfaXNkaWdpdChpdGVyKSkKKyAgICAgICAgaGFzX2RpZ2l0Kys7CisgICAgICBlbHNl CisgICAgICAgIGhhc19zcGVjaWFsX2NoYXJzKys7CisgICAgfQorICB9CisKKyAgbXlzcWxfc3Ry aW5nX2l0ZXJhdG9yX2ZyZWUoaXRlcik7CisgIGlmIChuX2NoYXJzID49IHZhbGlkYXRlX3Bhc3N3 b3JkX2xlbmd0aCkKKyAgeworICAgIGlmIChwb2xpY3kgPT0gUEFTU1dPUkRfUE9MSUNZX0xPVykK KyAgICAgIHJldHVybiAoMSk7CisgICAgaWYgKGhhc191cHBlciA+PSB2YWxpZGF0ZV9wYXNzd29y ZF9taXhlZF9jYXNlX2NvdW50ICYmCisgICAgICAgIGhhc19sb3dlciA+PSB2YWxpZGF0ZV9wYXNz d29yZF9taXhlZF9jYXNlX2NvdW50ICYmCisgICAgICAgIGhhc19zcGVjaWFsX2NoYXJzID49IHZh bGlkYXRlX3Bhc3N3b3JkX3NwZWNpYWxfY2hhcl9jb3VudCAmJgorICAgICAgICBoYXNfZGlnaXQg Pj0gdmFsaWRhdGVfcGFzc3dvcmRfbnVtYmVyX2NvdW50KQorICAgIHsKKyAgICAgIGlmIChwb2xp Y3kgPT0gUEFTU1dPUkRfUE9MSUNZX01FRElVTSB8fCB2YWxpZGF0ZV9kaWN0aW9uYXJ5X2NoZWNr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhc3N3b3Jk KSkKKyAgICAgICAgcmV0dXJuICgxKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuICgwKTsKK30KKwor LyogQWN0dWFsIHBsdWdpbiBmdW5jdGlvbiB3aGljaCBhY3RzIGFzIGEgd3JhcHBlciAqLworc3Rh dGljIGludCB2YWxpZGF0ZV9wYXNzd29yZChteXNxbF9zdHJpbmdfaGFuZGxlIHBhc3N3b3JkKQor eworICByZXR1cm4gdmFsaWRhdGVfcGFzc3dvcmRfcG9saWN5KHBhc3N3b3JkLCB2YWxpZGF0ZV9w YXNzd29yZF9wb2xpY3lfbnVtYmVyKTsKK30KKworLyogUGFzc3dvcmQgc3RyZW5ndGggYmV0d2Vl biAoMC0xMDApICovCitzdGF0aWMgaW50IGdldF9wYXNzd29yZF9zdHJlbmd0aChteXNxbF9zdHJp bmdfaGFuZGxlIHBhc3N3b3JkKQoreworICBpbnQgcG9saWN5PSAwOworICBpbnQgbl9jaGFycz0g MDsKKyAgbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSBpdGVyOworCisgIGl0ZXIgPSBteXNx bF9zdHJpbmdfZ2V0X2l0ZXJhdG9yKHBhc3N3b3JkKTsKKyAgd2hpbGUobXlzcWxfc3RyaW5nX2l0 ZXJhdG9yX25leHQoaXRlcikpCisgICAgbl9jaGFycysrOworICAKKyAgbXlzcWxfc3RyaW5nX2l0 ZXJhdG9yX2ZyZWUoaXRlcik7CisgIGlmIChuX2NoYXJzIDwgTUlOX0RJQ1RJT05BUllfV09SRF9M RU5HVEgpCisgICAgcmV0dXJuIChwb2xpY3kpOworICBpZiAobl9jaGFycyA8IHZhbGlkYXRlX3Bh c3N3b3JkX2xlbmd0aCkKKyAgICByZXR1cm4gKFBBU1NXT1JEX1NDT1JFKTsKKyAgZWxzZQorICB7 CisgICAgcG9saWN5PSBQQVNTV09SRF9QT0xJQ1lfTE9XOworICAgIGlmICh2YWxpZGF0ZV9wYXNz d29yZF9wb2xpY3kocGFzc3dvcmQsIFBBU1NXT1JEX1BPTElDWV9NRURJVU0pKQorICAgIHsKKyAg ICAgIHBvbGljeT0gUEFTU1dPUkRfUE9MSUNZX01FRElVTTsKKyAgICAgIGlmICh2YWxpZGF0ZV9k aWN0aW9uYXJ5X2NoZWNrKHBhc3N3b3JkKSkKKyAgICAgICAgcG9saWN5PSBQQVNTV09SRF9QT0xJ Q1lfU1RST05HOworICAgIH0KKyAgfQorICByZXR1cm4gKChwb2xpY3krMSkgKiBQQVNTV09SRF9T Q09SRSArIFBBU1NXT1JEX1NDT1JFKTsKK30KKworLyogUGx1Z2luIHR5cGUtc3BlY2lmaWMgZGVz Y3JpcHRvciAqLworc3RhdGljIHN0cnVjdCBzdF9teXNxbF92YWxpZGF0ZV9wYXNzd29yZCB2YWxp ZGF0ZV9wYXNzd29yZF9kZXNjcmlwdG9yPQoreworICBNWVNRTF9WQUxJREFURV9QQVNTV09SRF9J TlRFUkZBQ0VfVkVSU0lPTiwKKyAgdmFsaWRhdGVfcGFzc3dvcmQsICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIHZhbGlkYXRlIGZ1bmN0aW9uICAgICAgICAgICovCisgIGdldF9wYXNzd29yZF9z dHJlbmd0aCAgICAgICAgICAgICAgICAgICAgICAvKiB2YWxpZGF0ZSBzdHJlbmd0aCBmdW5jdGlv biAqLworfTsKKworLyogIAorICBJbml0aWFsaXplIHRoZSBwYXNzd29yZCBwbHVnaW4gYXQgc2Vy dmVyIHN0YXJ0IG9yIHBsdWdpbiBpbnN0YWxsYXRpb24sCisgIHJlYWQgZGljdGlvbmFyeSBmaWxl IGludG8gc3RkOjpzZXQuCisqLworCitzdGF0aWMgaW50IHZhbGlkYXRlX3Bhc3N3b3JkX2luaXQo dm9pZCAqYXJnIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKQoreworICByZWFkX2RpY3Rpb25hcnlf ZmlsZSgpOworICByZXR1cm4gKDApOworfQorCisvKiAgCisgIFRlcm1pbmF0ZSB0aGUgcGFzc3dv cmQgcGx1Z2luIGF0IHNlcnZlciBzaHV0ZG93biBvciBwbHVnaW4gZGVpbnN0YWxsYXRpb24uCisg IEl0IGVtcHR5IHRoZSBzdGQ6OnNldCBhbmQgcmV0dXJucyAwCisqLworCitzdGF0aWMgaW50IHZh bGlkYXRlX3Bhc3N3b3JkX2RlaW5pdCh2b2lkICphcmcgX19hdHRyaWJ1dGVfXygodW51c2VkKSkp Cit7CisgIGZyZWVfZGljdGlvbmFyeV9maWxlKCk7CisgIHJldHVybiAoMCk7Cit9CisKKy8qIFBs dWdpbiBzeXN0ZW0gdmFyaWFibGVzICovCisKK3N0YXRpYyBNWVNRTF9TWVNWQVJfSU5UKGxlbmd0 aCwgdmFsaWRhdGVfcGFzc3dvcmRfbGVuZ3RoLAorICBQTFVHSU5fVkFSX1JRQ01EQVJHLAorICAi UGFzc3dvcmQgdmFsaWRhdGUgbGVuZ3RoIHRvIGNoZWNrIGZvciBtaW5pbXVtIHBhc3N3b3JkX2xl bmd0aCIsCisgIE5VTEwsIE5VTEwsIDgsIDAsIDAsIDApOworCitzdGF0aWMgTVlTUUxfU1lTVkFS X0lOVChudW1iZXJfY291bnQsIHZhbGlkYXRlX3Bhc3N3b3JkX251bWJlcl9jb3VudCwKKyAgUExV R0lOX1ZBUl9SUUNNREFSRywKKyAgInBhc3N3b3JkIHZhbGlkYXRlIGRpZ2l0IHRvIGVuc3VyZSBt aW5pbXVtIG51bWVyaWMgY2hhcmFjdGVyIGluIHBhc3N3b3JkIiwKKyAgTlVMTCwgTlVMTCwgMSwg MCwgMCwgMCk7CisKK3N0YXRpYyBNWVNRTF9TWVNWQVJfSU5UKG1peGVkX2Nhc2VfY291bnQsIHZh bGlkYXRlX3Bhc3N3b3JkX21peGVkX2Nhc2VfY291bnQsCisgIFBMVUdJTl9WQVJfUlFDTURBUkcs CisgICJQYXNzd29yZCB2YWxpZGF0ZSBtaXhlZCBjYXNlIHRvIGVuc3VyZSBtaW5pbXVtIHVwcGVy L2xvd2VyIGNhc2UgaW4gcGFzc3dvcmQiLAorICBOVUxMLCBOVUxMLCAxLCAwLCAwLCAwKTsKKwor c3RhdGljIE1ZU1FMX1NZU1ZBUl9JTlQoc3BlY2lhbF9jaGFyX2NvdW50LAorICB2YWxpZGF0ZV9w YXNzd29yZF9zcGVjaWFsX2NoYXJfY291bnQsIFBMVUdJTl9WQVJfUlFDTURBUkcsCisgICJwYXNz d29yZCB2YWxpZGF0ZSBzcGVjaWFsIHRvIGVuc3VyZSBtaW5pbXVtIHNwZWNpYWwgY2hhcmFjdGVy IGluIHBhc3N3b3JkIiwKKyAgTlVMTCwgTlVMTCwgMSwgMCwgMCwgMCk7CisKK3N0YXRpYyBNWVNR TF9TWVNWQVJfRU5VTShwb2xpY3lfbnVtYmVyLCB2YWxpZGF0ZV9wYXNzd29yZF9wb2xpY3lfbnVt YmVyLAorICBQTFVHSU5fVkFSX1JRQ01EQVJHLAorICAicGFzc3dvcmRfdmFsaWRhdGVfcG9saWN5 IGNob29zZW4gcG9saWN5IHRvIHZhbGlkYXRlIHBhc3N3b3JkIgorICAicG9zc2libGUgdmFsdWVz IGFyZSBMT1cgTUVESVVNIChkZWZhdWx0KSwgU1RST05HIiwKKyAgTlVMTCwgTlVMTCwgUEFTU1dP UkRfUE9MSUNZX01FRElVTSwgJnBhc3N3b3JkX3BvbGljeV90eXBlbGliX3QpOworCitzdGF0aWMg TVlTUUxfU1lTVkFSX1NUUihkaWN0aW9uYXJ5X2ZpbGUsIHZhbGlkYXRlX3Bhc3N3b3JkX2RpY3Rp b25hcnlfZmlsZSwKKyAgUExVR0lOX1ZBUl9SRUFET05MWSwKKyAgInBhc3N3b3JkX3ZhbGlkYXRl X2RpY3Rpb25hcnkgZmlsZSB0byBiZSBsb2FkZWQgYW5kIGNoZWNrIGZvciBwYXNzd29yZCIsCisg IE5VTEwsIE5VTEwsIE5VTEwpOworCitzdGF0aWMgc3RydWN0IHN0X215c3FsX3N5c192YXIqIHZh bGlkYXRlX3Bhc3N3b3JkX3N5c3RlbV92YXJpYWJsZXNbXT0geworICBNWVNRTF9TWVNWQVIobGVu Z3RoKSwKKyAgTVlTUUxfU1lTVkFSKG51bWJlcl9jb3VudCksCisgIE1ZU1FMX1NZU1ZBUihtaXhl ZF9jYXNlX2NvdW50KSwKKyAgTVlTUUxfU1lTVkFSKHNwZWNpYWxfY2hhcl9jb3VudCksCisgIE1Z U1FMX1NZU1ZBUihwb2xpY3lfbnVtYmVyKSwKKyAgTVlTUUxfU1lTVkFSKGRpY3Rpb25hcnlfZmls ZSksCisgIE5VTEwKK307CisKK215c3FsX2RlY2xhcmVfcGx1Z2luKHZhbGlkYXRlX3Bhc3N3b3Jk KQoreworICBNWVNRTF9WQUxJREFURV9QQVNTV09SRF9QTFVHSU4sICAgICAvKiAgIHR5cGUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgJnZhbGlkYXRlX3Bhc3N3b3JkX2Rlc2NyaXB0 b3IsICAgICAgLyogICBkZXNjcmlwdG9yICAgICAgICAgICAgICAgICAgICAgICovCisgICJ2YWxp ZGF0ZV9wYXNzd29yZCIsICAgICAgICAgICAgICAgIC8qICAgbmFtZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqLworICAiT3JhY2xlIENvcnBvcmF0aW9uIiwgICAgICAgICAgICAgICAvKiAg IGF1dGhvciAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgImNoZWNrIHBhc3N3b3JkIHN0 cmVuZ3RoIiwgICAgICAgICAgLyogICBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICov CisgIFBMVUdJTl9MSUNFTlNFX0dQTCwKKyAgdmFsaWRhdGVfcGFzc3dvcmRfaW5pdCwgICAgICAg ICAgICAgLyogICBpbml0IGZ1bmN0aW9uICh3aGVuIGxvYWRlZCkgICAgICovCisgIHZhbGlkYXRl X3Bhc3N3b3JkX2RlaW5pdCwgICAgICAgICAgIC8qICAgZGVpbml0IGZ1bmN0aW9uICh3aGVuIHVu bG9hZGVkKSAqLworICAweDAxMDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHZl cnNpb24gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgTlVMTCwKKyAgdmFsaWRhdGVfcGFz c3dvcmRfc3lzdGVtX3ZhcmlhYmxlcywgLyogICBzeXN0ZW0gdmFyaWFibGVzICAgICAgICAgICAg ICAgICovCisgIE5VTEwsCisgIDAsCit9CitteXNxbF9kZWNsYXJlX3BsdWdpbl9lbmQ7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3FsL0NNYWtlTGlzdHMudHh0JwotLS0gYS9zcWwvQ01ha2VMaXN0cy50 eHQJMjAxMi0wNS0yNCAyMDowMjo0MyArMDAwMAorKysgYi9zcWwvQ01ha2VMaXN0cy50eHQJMjAx Mi0wNS0yOCAwOToyMTo0MCArMDAwMApAQCAtMTE1LDYgKzExNSw3IEBAIFNFVChTUUxfU0hBUkVE X1NPVVJDRVMKICAgc3BfcGNvbnRleHQuY2MgCiAgIHNwX3Jjb250ZXh0LmNjCiAgIHNwYXRpYWwu Y2MKKyAgc3RyaW5nX3NlcnZpY2UuY2MKICAgc3FsX2FjbC5jYwogICBzcWxfYWRtaW4uY2MKICAg c3FsX2FsbG9jX2Vycm9yX2hhbmRsZXIuY2MKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaXRlbV9j cmVhdGUuY2MnCi0tLSBhL3NxbC9pdGVtX2NyZWF0ZS5jYwkyMDEyLTA1LTE2IDExOjAzOjQzICsw MDAwCisrKyBiL3NxbC9pdGVtX2NyZWF0ZS5jYwkyMDEyLTA1LTIzIDA5OjU0OjQwICswMDAwCkBA IC0yNDgxLDYgKzI0ODEsMTkgQEAgcHJvdGVjdGVkOgogfTsKIAogCitjbGFzcyBDcmVhdGVfZnVu Y192YWxpZGF0ZV9wYXNzd29yZF9zdHJlbmd0aCA6IHB1YmxpYyBDcmVhdGVfZnVuY19hcmcxCit7 CitwdWJsaWM6CisgIHZpcnR1YWwgSXRlbSAqY3JlYXRlKFRIRCAqdGhkLCBJdGVtICphcmcxKTsK KworICBzdGF0aWMgQ3JlYXRlX2Z1bmNfdmFsaWRhdGVfcGFzc3dvcmRfc3RyZW5ndGggc19zaW5n bGV0b247CisKK3Byb3RlY3RlZDoKKyAgQ3JlYXRlX2Z1bmNfdmFsaWRhdGVfcGFzc3dvcmRfc3Ry ZW5ndGgoKSB7fQorICB2aXJ0dWFsIH5DcmVhdGVfZnVuY192YWxpZGF0ZV9wYXNzd29yZF9zdHJl bmd0aCgpIHt9Cit9OworCisKIGNsYXNzIENyZWF0ZV9mdW5jX3ZlcnNpb24gOiBwdWJsaWMgQ3Jl YXRlX2Z1bmNfYXJnMAogewogcHVibGljOgpAQCAtNTE4MSw2ICs1MTk0LDE2IEBAIENyZWF0ZV9m dW5jX3V1aWRfc2hvcnQ6OmNyZWF0ZShUSEQgKnRoZCkKIH0KIAogCitDcmVhdGVfZnVuY192YWxp ZGF0ZV9wYXNzd29yZF9zdHJlbmd0aAorICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlX2Z1bmNf dmFsaWRhdGVfcGFzc3dvcmRfc3RyZW5ndGg6OnNfc2luZ2xldG9uOworCitJdGVtKgorQ3JlYXRl X2Z1bmNfdmFsaWRhdGVfcGFzc3dvcmRfc3RyZW5ndGg6OmNyZWF0ZShUSEQgKnRoZCwgSXRlbSAq YXJnMSkKK3sKKyAgcmV0dXJuIG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9mdW5jX3ZhbGlkYXRl X3Bhc3N3b3JkX3N0cmVuZ3RoKGFyZzEpOworfQorCisKIENyZWF0ZV9mdW5jX3ZlcnNpb24gQ3Jl YXRlX2Z1bmNfdmVyc2lvbjo6c19zaW5nbGV0b247CiAKIEl0ZW0qCkBAIC01NjA4LDYgKzU2MzEs NyBAQCBzdGF0aWMgTmF0aXZlX2Z1bmNfcmVnaXN0cnkgZnVuY19hcnJheVtdCiAgIHsgeyBDX1NU UklOR19XSVRIX0xFTigiVVBQRVIiKSB9LCBCVUlMREVSKENyZWF0ZV9mdW5jX3VjYXNlKX0sCiAg IHsgeyBDX1NUUklOR19XSVRIX0xFTigiVVVJRCIpIH0sIEJVSUxERVIoQ3JlYXRlX2Z1bmNfdXVp ZCl9LAogICB7IHsgQ19TVFJJTkdfV0lUSF9MRU4oIlVVSURfU0hPUlQiKSB9LCBCVUlMREVSKENy ZWF0ZV9mdW5jX3V1aWRfc2hvcnQpfSwKKyAgeyB7IENfU1RSSU5HX1dJVEhfTEVOKCJWQUxJREFU RV9QQVNTV09SRF9TVFJFTkdUSCIpIH0sIEJVSUxERVIoQ3JlYXRlX2Z1bmNfdmFsaWRhdGVfcGFz c3dvcmRfc3RyZW5ndGgpfSwKICAgeyB7IENfU1RSSU5HX1dJVEhfTEVOKCJWRVJTSU9OIikgfSwg QlVJTERFUihDcmVhdGVfZnVuY192ZXJzaW9uKX0sCiAgIHsgeyBDX1NUUklOR19XSVRIX0xFTigi V0VFS0RBWSIpIH0sIEJVSUxERVIoQ3JlYXRlX2Z1bmNfd2Vla2RheSl9LAogICB7IHsgQ19TVFJJ TkdfV0lUSF9MRU4oIldFRUtPRllFQVIiKSB9LCBCVUlMREVSKENyZWF0ZV9mdW5jX3dlZWtvZnll YXIpfSwKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaXRlbV9mdW5jLmNjJwotLS0gYS9zcWwvaXRl bV9mdW5jLmNjCTIwMTItMDUtMTggMTQ6MDg6NDkgKzAwMDAKKysrIGIvc3FsL2l0ZW1fZnVuYy5j YwkyMDEyLTA1LTI0IDEwOjU2OjUyICswMDAwCkBAIC0zMjE5LDYgKzMyMTksMTMgQEAgdm9pZCBJ dGVtX2Z1bmNfbG9jYXRlOjpwcmludChTdHJpbmcgKnN0cgogfQogCiAKK2xvbmdsb25nIEl0ZW1f ZnVuY192YWxpZGF0ZV9wYXNzd29yZF9zdHJlbmd0aDo6dmFsX2ludCgpCit7CisgIFN0cmluZyAq ZmllbGQ9IGFyZ3NbMF0tPnZhbF9zdHIoJnZhbHVlKTsKKyAgcmV0dXJuIChjaGVja19wYXNzd29y ZF9zdHJlbmd0aChmaWVsZCkpOworfQorCisKIGxvbmdsb25nIEl0ZW1fZnVuY19maWVsZDo6dmFs X2ludCgpCiB7CiAgIERCVUdfQVNTRVJUKGZpeGVkID09IDEpOwoKPT09IG1vZGlmaWVkIGZpbGUg J3NxbC9pdGVtX2Z1bmMuaCcKLS0tIGEvc3FsL2l0ZW1fZnVuYy5oCTIwMTItMDUtMTggMTQ6MDg6 NDkgKzAwMDAKKysrIGIvc3FsL2l0ZW1fZnVuYy5oCTIwMTItMDUtMjMgMDk6NTQ6NDAgKzAwMDAK QEAgLTExMDYsNiArMTEwNiwxNyBAQCBwdWJsaWM6CiB9OwogCiAKK2NsYXNzIEl0ZW1fZnVuY192 YWxpZGF0ZV9wYXNzd29yZF9zdHJlbmd0aCA6cHVibGljIEl0ZW1faW50X2Z1bmMKK3sKKyAgU3Ry aW5nIHZhbHVlOworcHVibGljOgorICBJdGVtX2Z1bmNfdmFsaWRhdGVfcGFzc3dvcmRfc3RyZW5n dGgoSXRlbSAqYSkgOkl0ZW1faW50X2Z1bmMoYSkge30KKyAgbG9uZ2xvbmcgdmFsX2ludCgpOwor ICBjb25zdCBjaGFyICpmdW5jX25hbWUoKSBjb25zdCB7IHJldHVybiAidmFsaWRhdGVfcGFzc3dv cmRfc3RyZW5ndGgiOyB9CisgIHZvaWQgZml4X2xlbmd0aF9hbmRfZGVjKCkgeyBtYXhfbGVuZ3Ro PTEwOyB9Cit9OworCisKIGNsYXNzIEl0ZW1fZnVuY19maWVsZCA6cHVibGljIEl0ZW1faW50X2Z1 bmMKIHsKICAgU3RyaW5nIHZhbHVlLHRtcDsKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvaXRlbV9z dHJmdW5jLmNjJwotLS0gYS9zcWwvaXRlbV9zdHJmdW5jLmNjCTIwMTItMDQtMTcgMTQ6Mzc6NTAg KzAwMDAKKysrIGIvc3FsL2l0ZW1fc3RyZnVuYy5jYwkyMDEyLTA1LTIzIDA5OjU0OjQwICswMDAw CkBAIC0xOTI1LDYgKzE5MjUsNyBAQCBTdHJpbmcgKkl0ZW1fZnVuY19wYXNzd29yZDo6dmFsX3N0 cl9hc2NpCiAgIFN0cmluZyAqcmVzPSBhcmdzWzBdLT52YWxfc3RyKHN0cik7IAogICBpZiAoKG51 bGxfdmFsdWU9YXJnc1swXS0+bnVsbF92YWx1ZSkpCiAgICAgcmV0dXJuIDA7CisgIGNoZWNrX3Bh c3N3b3JkX3BvbGljeShyZXMpOwogICBpZiAocmVzLT5sZW5ndGgoKSA9PSAwKQogICAgIHJldHVy biBtYWtlX2VtcHR5X3Jlc3VsdCgpOwogICBteV9tYWtlX3NjcmFtYmxlZF9wYXNzd29yZCh0bXBf dmFsdWUsIHJlcy0+cHRyKCksIHJlcy0+bGVuZ3RoKCkpOwpAQCAtMTkzNyw3ICsxOTM4LDEyIEBA IGNoYXIgKkl0ZW1fZnVuY19wYXNzd29yZDo6YWxsb2MoVEhEICp0aGQKIHsKICAgY2hhciAqYnVm Zj0gKGNoYXIgKikgdGhkLT5hbGxvYyhTQ1JBTUJMRURfUEFTU1dPUkRfQ0hBUl9MRU5HVEgrMSk7 CiAgIGlmIChidWZmKQorICB7CisgICAgU3RyaW5nICpwYXNzd29yZF9zdHI9IG5ldyAodGhkLT5t ZW1fcm9vdClTdHJpbmcocGFzc3dvcmQsIHRoZC0+dmFyaWFibGVzLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlcl9zZXRfY2xpZW50 KTsKKyAgICBjaGVja19wYXNzd29yZF9wb2xpY3kocGFzc3dvcmRfc3RyKTsKICAgICBteV9tYWtl X3NjcmFtYmxlZF9wYXNzd29yZChidWZmLCBwYXNzd29yZCwgcGFzc19sZW4pOworICB9CiAgIHJl dHVybiBidWZmOwogfQogCkBAIC0xOTQ5LDYgKzE5NTUsNyBAQCBTdHJpbmcgKkl0ZW1fZnVuY19v bGRfcGFzc3dvcmQ6OnZhbF9zdHJfCiAgIFN0cmluZyAqcmVzPSBhcmdzWzBdLT52YWxfc3RyKHN0 cik7CiAgIGlmICgobnVsbF92YWx1ZT1hcmdzWzBdLT5udWxsX3ZhbHVlKSkKICAgICByZXR1cm4g MDsKKyAgY2hlY2tfcGFzc3dvcmRfcG9saWN5KHJlcyk7CiAgIGlmIChyZXMtPmxlbmd0aCgpID09 IDApCiAgICAgcmV0dXJuIG1ha2VfZW1wdHlfcmVzdWx0KCk7CiAgIG15X21ha2Vfc2NyYW1ibGVk X3Bhc3N3b3JkXzMyMyh0bXBfdmFsdWUsIHJlcy0+cHRyKCksIHJlcy0+bGVuZ3RoKCkpOwpAQCAt MTk2MSw3ICsxOTY4LDEyIEBAIGNoYXIgKkl0ZW1fZnVuY19vbGRfcGFzc3dvcmQ6OmFsbG9jKFRI RAogewogICBjaGFyICpidWZmPSAoY2hhciAqKSB0aGQtPmFsbG9jKFNDUkFNQkxFRF9QQVNTV09S RF9DSEFSX0xFTkdUSF8zMjMrMSk7CiAgIGlmIChidWZmKQorICB7CisgICAgU3RyaW5nICpwYXNz d29yZF9zdHI9IG5ldyAodGhkLT5tZW1fcm9vdClTdHJpbmcocGFzc3dvcmQsIHRoZC0+dmFyaWFi bGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNoYXJhY3Rlcl9zZXRfY2xpZW50KTsKKyAgICBjaGVja19wYXNzd29yZF9wb2xpY3kocGFzc3dv cmRfc3RyKTsKICAgICBteV9tYWtlX3NjcmFtYmxlZF9wYXNzd29yZF8zMjMoYnVmZiwgcGFzc3dv cmQsIHBhc3NfbGVuKTsKKyAgfQogICByZXR1cm4gYnVmZjsKIH0KIAoKPT09IG1vZGlmaWVkIGZp bGUgJ3NxbC9zaGFyZS9DTWFrZUxpc3RzLnR4dCcKLS0tIGEvc3FsL3NoYXJlL0NNYWtlTGlzdHMu dHh0CTIwMTEtMDYtMzAgMTU6NDY6NTMgKzAwMDAKKysrIGIvc3FsL3NoYXJlL0NNYWtlTGlzdHMu dHh0CTIwMTItMDUtMjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTQyLDYgKzQyLDcgQEAgc2VyYmlhbgog CiBTRVQoZmlsZXMgCiAgZXJybXNnLXV0ZjgudHh0CisgZGljdGlvbmFyeS50eHQKICkKIAogRk9S RUFDSCAoZGlyICR7ZGlyc30pCkBAIC01MSw1ICs1Miw1IEBAIEVOREZPUkVBQ0goKQogSU5TVEFM TChESVJFQ1RPUlkgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2NoYXJzZXRzIERFU1RJTkFU SU9OICR7SU5TVEFMTF9NWVNRTFNIQVJFRElSfSBDT01QT05FTlQgU2VydmVyCiAgIFBBVFRFUk4g Imxhbmd1YWdlcy5odG1sIiBFWENMVURFCiApCi0KK0NPTkZJR1VSRV9GSUxFKGRpY3Rpb25hcnku dHh0ICR7Q01BS0VfQklOQVJZX0RJUn0vc3FsL3NoYXJlL2RpY3Rpb25hcnkudHh0KQogSU5TVEFM TChGSUxFUyAke2ZpbGVzfSBERVNUSU5BVElPTiAke0lOU1RBTExfTVlTUUxTSEFSRURJUn0gQ09N UE9ORU5UIFNlcnZlcikKCj09PSBhZGRlZCBmaWxlICdzcWwvc2hhcmUvZGljdGlvbmFyeS50eHQn Ci0tLSBhL3NxbC9zaGFyZS9kaWN0aW9uYXJ5LnR4dAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAw CisrKyBiL3NxbC9zaGFyZS9kaWN0aW9uYXJ5LnR4dAkyMDEyLTA1LTIzIDA5OjU0OjQwICswMDAw CkBAIC0wLDAgKzEsMzUzOCBAQAorMDAwMAorMTExMQorMTIzNDU2CisxMjM0NQorcGFzc3dvcmQK K3Bhc3N3b3JkMQorMTIzNDU2Nzg5CisxMjM0NTY3OAorMTIzNDU2Nzg5MAorYWJjMTIzCitjb21w dXRlcgordGlnZ2VyCisxMjM0Citxd2VydHkKK21vbmV5CitjYXJtZW4KK21pY2tleQorc2VjcmV0 CitzdW1tZXIKK2ludGVybmV0CithMWIyYzMKK3NlcnZpY2UKK2NhbmFkYQoraGVsbG8KK3Jhbmdl cgorc2hhZG93CitiYXNlYmFsbAorZG9uYWxkCitoYXJsZXkKK2hvY2tleQorbGV0bWVpbgorbWFn Z2llCittaWtlCittdXN0YW5nCitzbm9vcHkKK2J1c3RlcgorZHJhZ29uCitqb3JkYW4KK21pY2hh ZWwKK21pY2hlbGxlCittaW5keQorcGF0cmljaworMTIzYWJjCithbmRyZXcKK2JlYXIKK2NhbHZp bgorY2hhbmdlbWUKK2RpYW1vbmQKK2Z1Y2ttZQorZnVja3lvdQorbWF0dGhldworbWlsbGVyCit0 aWdlcgordHJ1c3RubzEKK2FsZXgKK2FwcGxlCithdmFsb24KK2JyYW5keQorY2hlbHNlYQorY29m ZmVlCitmYWxjb24KK2ZyZWVkb20KK2dhbmRhbGYKK2dyZWVuCitoZWxwbWUKK2xpbmRhCittYWdp YworbWVybGluCituZXd5b3JrCitzb2NjZXIKK3Rob21hcword2l6YXJkCithc2RmZ2gKK2JhbmRp dAorYmF0bWFuCitib3JpcworYnV0dGhlYWQKK2Rvcm90aHkKK2VleW9yZQorZmlzaGluZworZm9v dGJhbGwKK2dlb3JnZQoraGFwcHkKK2lsb3ZleW91CitqZW5uaWZlcgoram9uYXRoYW4KK2xvdmUK K21hcmluYQorbWFzdGVyCittaXNzeQorbW9uZGF5Cittb25rZXkKK25hdGFzaGEKK25jYzE3MDEK K3BhbWVsYQorcGVwcGVyCitwaWdsZXQKK3Bvb2hiZWFyCitwb29raWUKK3JhYmJpdAorcmFjaGVs Cityb2NrZXQKK3Jvc2UKK3NtaWxlCitzcGFya3kKK3NwcmluZworc3RldmVuCitzdWNjZXNzCitz dW5zaGluZQordmljdG9yaWEKK3doYXRldmVyCit6YXBhdGEKKzg2NzUzMDkKK2FtYW5kYQorYW5k eQorYW5nZWwKK2F1Z3VzdAorYmFybmV5CitiaXRlbWUKK2Jvb21lcgorYnJpYW4KK2Nhc2V5Citj b3dib3kKK2RlbHRhCitkb2N0b3IKK2Zpc2hlcgoraXNsYW5kCitqb2huCitqb3NodWEKK2thcmVu CittYXJsZXkKK29yYW5nZQorcGxlYXNlCityYXNjYWwKK3JpY2hhcmQKK3NhcmFoCitzY29vdGVy CitzaGFsb20KK3NpbHZlcgorc2tpcHB5CitzdGFubGV5Cit0YXlsb3IKK3dlbGNvbWUKK3plcGh5 cgorMTExMTExCithYWFhYWEKK2FjY2VzcworYWxiZXJ0CithbGV4YW5kZXIKK2FuZHJlYQorYW5u YQorYW50aG9ueQorYXNkZmprbDsKK2FzaGxleQorYmFza2V0YmFsbAorYmVhdmlzCitibGFjawor Ym9iCitib29ib28KK2JyYWRsZXkKK2JyYW5kb24KK2J1ZGR5CitjYWl0bGluCitjYW1hcm8KK2No YXJsaWUKK2NoaWNrZW4KK2NocmlzCitjaW5keQorY3JpY2tldAorZGFrb3RhCitkYWxsYXMKK2Rh bmllbAorZGF2aWQKK2RlYmJpZQorZG9scGhpbgorZWxlcGhhbnQKK2VtaWx5CitmcmllbmQKK2Z1 Y2tlcgorZ2luZ2VyCitnb29kbHVjaworaGFtbWVyCitoZWF0aGVyCitpY2VtYW4KK2phc29uCitq ZXNzaWNhCitqZXN1cworam9zZXBoCitqdXBpdGVyCitqdXN0aW4KK2tldmluCitrbmlnaHQKK2xh Y3Jvc3NlCitsYWtlcnMKK2xpemFyZAorbWFkaXNvbgorbWFyeQorbW90aGVyCittdWZmaW4KK211 cnBoeQorbmlydmFuYQorcGFyaXMKK3BlbnRpdW0KK3Bob2VuaXgKK3BpY3R1cmUKK3JhaW5ib3cK K3NhbmR5CitzYXR1cm4KK3Njb3R0CitzaGFubm9uCitzaGl0aGVhZAorc2tlZXRlcgorc29waGll CitzcGVjaWFsCitzdGVwaGFuaWUKK3N0ZXBoZW4KK3N0ZXZlCitzd2VldGllCit0ZWFjaGVyCit0 ZW5uaXMKK3Rlc3QKK3Rlc3QxMjMKK3RvbW15Cit0b3BndW4KK3RyaXN0YW4KK3dhbGx5Cit3aWxs aWFtCit3aWxzb24KKzFxMnczZQorNjU0MzIxCis2NjY2NjYKK2ExMjM0NQorYTFiMmMzZDQKK2Fs cGhhCithbWJlcgorYW5nZWxhCithbmdpZQorYXJjaGllCithc2RmCitibGF6ZXIKK2JvbmQwMDcK K2Jvb2dlcgorY2hhcmxlcworY2hyaXN0aW4KK2NsYWlyZQorY29udHJvbAorZGFubnkKK2Rhdmlk MQorZGVubmlzCitkaWdpdGFsCitkaXNuZXkKK2Vkd2FyZAorZWx2aXMKK2ZlbGl4CitmbGlwcGVy CitmcmFua2xpbgorZnJvZG8KK2hvbmRhCitob3JzZXMKK2h1bnRlcgoraW5kaWdvCitqYW1lcwor amFzcGVyCitqZXJlbXkKK2p1bGlhbgora2Vsc2V5CitraWxsZXIKK2xhdXJlbgorbWFyaWUKK21h cnlqYW5lCittYXRyaXgKK21hdmVyaWNrCittYXlkYXkKK21lcmN1cnkKK21pdGNoZWxsCittb3Jn YW4KK21vdW50YWluCituaW5lcnMKK25vdGhpbmcKK29saXZlcgorcGVhY2UKK3BlYW51dAorcGVh cmxqYW0KK3BoYW50b20KK3BvcGNvcm4KK3ByaW5jZXNzCitwc3ljaG8KK3B1bXBraW4KK3B1cnBs ZQorcmFuZHkKK3JlYmVjY2EKK3JlZGRvZworcm9iZXJ0Cityb2NreQorcm9zZXMKK3NhbG1vbgor c2Ftc29uCitzaGFyb24KK3NpZXJyYQorc21va2V5CitzdGFydHJlaworc3RlZWxlcnMKK3N0aW1w eQorc3VuZmxvd2VyCitzdXBlcm1hbgorc3VwcG9ydAorc3lkbmV5Cit0ZWNobm8KK3dhbHRlcgor d2lsbGllCit3aWxsb3cKK3dpbm5lcgoremlnZ3kKK3p4Y3Zibm0KK2FsYXNrYQorYWxleGlzCith bGljZQorYW5pbWFsCithcHBsZXMKK2JhcmJhcmEKK2JlbmphbWluCitiaWxseQorYmx1ZQorYmx1 ZWJpcmQKK2JvYmJ5Citib25uaWUKK2J1YmJhCitjYW1lcmEKK2Nob2NvbGF0ZQorY2xhcmsKK2Ns YXVkaWEKK2NvY2Fjb2xhCitjb21wdG9uCitjb25uZWN0Citjb29raWUKK2NydWlzZQorZG91Z2xh cworZHJlYW1lcgorZHJlYW1zCitkdWNraWUKK2VhZ2xlcworZWRkaWUKK2VpbnN0ZWluCitlbnRl cgorZXhwbG9yZXIKK2ZhaXRoCitmYW1pbHkKK2ZlcnJhcmkKK2ZsYW1pbmdvCitmbG93ZXIKK2Zv eHRyb3QKK2ZyYW5jaXMKK2ZyZWRkeQorZnJpZGF5Citmcm9nZ3kKK2dpYW50cworZ2l6bW8KK2ds b2JhbAorZ29vZnkKK2hhcHB5MQoraGVuZHJpeAoraGVucnkKK2hlcm1hbgoraG9tZXIKK2hvbmV5 Citob3VzZQoraG91c3RvbgoraWd1YW5hCitpbmRpYW5hCitpbnNhbmUKK2luc2lkZQoraXJpc2gK K2lyb25tYW4KK2pha2UKK2phc21pbgoramVhbm5lCitqZXJyeQoram9leQoranVzdGljZQora2F0 aGVyaW5lCitrZXJtaXQKK2tpdHR5Citrb2FsYQorbGFycnkKK2xlc2xpZQorbG9nYW4KK2x1Y2t5 CittYXJrCittYXJ0aW4KK21hdHQKK21pbm5pZQorbWlzdHkKK21pdGNoCittb3VzZQorbmFuY3kK K25hc2NhcgorbmVsc29uCitwYW50ZXJhCitwYXJrZXIKK3Blbmd1aW4KK3BldGVyCitwaWFubwor cGl6emEKK3ByaW5jZQorcHVua2luCitweXJhbWlkCityYXltb25kCityb2Jpbgorcm9nZXIKK3Jv c2VidWQKK3JvdXRlNjYKK3JveWFsCitydW5uaW5nCitzYWRpZQorc2FzaGEKK3NlY3VyaXR5Citz aGVlbmEKK3NoZWlsYQorc2tpaW5nCitzbmFwcGxlCitzbm93YmFsbAorc3BhcnJvdworc3BlbmNl cgorc3Bpa2UKK3N0YXIKK3N0ZWFsdGgKK3N0dWRlbnQKK3N1bm55CitzeWx2aWEKK3RhbWFyYQor dGF1cnVzCit0ZXJlc2EKK3RoZXJlc2EKK3RodW5kZXJiaXJkCit0aWdlcnMKK3RvbnkKK3RveW90 YQordHJhdmVsCit0dWVzZGF5Cit2aWN0b3J5Cit2aXBlcjEKK3dlc2xleQord2hpc2t5Cit3aW5u aWUKK3dpbnRlcgord29sdmVzCit4eXoxMjMKK3pvcnJvCisxMjMxMjMKKzEyMzQ1NjcKKzY5Njk2 OQorODg4ODg4CitBbnRob255CitKb3NodWEKK01hdHRoZXcKK1RpZ2dlcgorYWFyb24KK2FiYnkK K2FiY2RlZgorYWRpZGFzCithZHJpYW4KK2FsZnJlZAorYXJ0aHVyCithdGhlbmEKK2F1c3Rpbgor YXdlc29tZQorYmFkZ2VyCitiYW1ib28KK2JlYWdsZQorYmVhcnMKK2JlYXRsZXMKK2JlYXV0aWZ1 bAorYmVhdmVyCitiZW5ueQorYmlnbWFjCitiaW5nbworYml0Y2gKK2Jsb25kZQorYm9vZ2llCiti b3N0b24KK2JyZW5kYQorYnJpZ2h0CitidWJiYTEKK2J1YmJsZXMKK2J1ZmZ5CitidXR0b24KK2J1 dHRvbnMKK2NhY3R1cworY2FuZHkKK2NhcHRhaW4KK2NhcmxvcworY2Fyb2xpbmUKK2NhcnJpZQor Y2FzcGVyCitjYXRjaDIyCitjaGFuY2UKK2NoYXJpdHkKK2NoYXJsb3R0ZQorY2hlZXNlCitjaGVy eWwKK2NobG9lCitjaHJpczEKK2NsYW5jeQorY29tcGFxCitjb25yYWQKK2Nvb3BlcgorY29vdGVy Citjb3BwZXIKK2Nvc21vcworY291Z2FyCitjcmFja2VyCitjcmF3Zm9yZAorY3J5c3RhbAorY3Vy dGlzCitjeWNsb25lCitkYW5jZQorZGlhYmxvCitkb2xsYXJzCitkb29raWUKK2R1bWJhc3MKK2R1 bmRlZQorZWxpemFiZXRoCitlcmljCitldXJvcGUKK2Zhcm1lcgorZmlyZWJpcmQKK2ZsZXRjaGVy CitmbHVmZnkKK2ZyYW5jZQorZnJlYWsxCitmcmllbmRzCitmdWNrb2ZmCitnYWJyaWVsCitnYWxh eHkKK2dhbWJpdAorZ2FyZGVuCitnYXJmaWVsZAorZ2FybmV0CitnZW5lc2lzCitnZW5pdXMKK2dv ZHppbGxhCitnb2xmZXIKK2dvb2JlcgorZ3JhY2UKK2dyZWVuZGF5Citncm9vdnkKK2dyb3Zlcgor Z3VpdGFyCitoYWNrZXIKK2hhcnJ5CitoYXplbAoraGVjdG9yCitoZXJiZXJ0Citob3Jpem9uCito b3JuZXQKK2hvd2FyZAoraWNlY3JlYW0KK2ltYWdpbmUKK2ltcGFsYQoramFjaworamFuaWNlCitq YXNtaW5lCitqYXNvbjEKK2plYW5ldHRlCitqZWZmcmV5CitqZW5pZmVyCitqZW5uaQoramVzdXMx CitqZXdlbHMKK2pva2VyCitqdWxpZQoranVsaWUxCitqdW5pb3IKK2p1c3RpbjEKK2thdGhsZWVu CitrZWl0aAora2VsbHkKK2tlbGx5MQora2VubmVkeQora2V2aW4xCitrbmlja3MKK2xhcnJ5MQor bGVvbmFyZAorbGVzdGF0CitsaWJyYXJ5CitsaW5jb2xuCitsaW9ua2luZworbG9uZG9uCitsb3Vp c2UKK2x1Y2t5MQorbHVjeQorbWFkZG9nCittYXJnYXJldAorbWFyaXBvc2EKK21hcmxib3JvCitt YXJ0aW4xCittYXJ0eQorbWFzdGVyMQorbWVuc3VjaworbWVyY2VkZXMKK21ldGFsCittaWRvcmkK K21pa2V5CittaWxsaWUKK21pcmFnZQorbW9sbHkKK21vbmV0Cittb25leTEKK21vbmljYQorbW9u b3BvbHkKK21vb2tpZQorbW9vc2UKK21vcm9uaQorbXVzaWMKK25hb21pCituYXRoYW4KK25ndXll bgorbmljaG9sYXMKK25pY29sZQorbmltcm9kCitvY3RvYmVyCitvbGl2ZQorb2xpdmlhCitvbmxp bmUKK29zY2FyCitveGZvcmQKK3BhY2lmaWMKK3BhaW50ZXIKK3BlYWNoZXMKK3BlbmVsb3BlCitw ZXBzaQorcGV0dW5pYQorcGhpbGlwCitwaG9lbml4MQorcGhvdG8KK3BpY2tsZQorcGxheWVyCitw b2l1eXQKK3BvcnNjaGUKK3BvcnRlcgorcHVwcHkKK3B5dGhvbgorcXVhbGl0eQorcmFxdWVsCity YXZlbgorcmVtZW1iZXIKK3JvYmJpZQorcm9iZXJ0MQorcm9tYW4KK3J1Z2J5CitydW5uZXIKK3J1 c3NlbGwKK3J5YW4KK3NhaWxpbmcKK3NhaWxvcgorc2FtYW50aGEKK3NhdmFnZQorc2NhcmxldHQK K3NjaG9vbAorc2Vhbgorc2V2ZW4KK3NoYWRvdzEKK3NoZWJhCitzaGVsYnkKK3NoaXQKK3Nob2Vz CitzaW1iYQorc2ltcGxlCitza2lwcGVyCitzbWlsZXkKK3NuYWtlCitzbmlja2Vycworc25pcGVy Citzbm9vcGRvZworc25vd21hbgorc29uaWMKK3NwaXRmaXJlCitzcHJpdGUKK3NwdW5reQorc3Rh cndhcnMKK3N0YXRpb24KK3N0ZWxsYQorc3RpbmdyYXkKK3N0b3JtCitzdG9ybXkKK3N0dXBpZAor c3VubnkxCitzdW5yaXNlCitzdXJmZXIKK3N1c2FuCit0YW1teQordGFuZ28KK3RhbnlhCit0ZWRk eTEKK3RoZWJvc3MKK3RoZWtpbmcKK3RodW1wZXIKK3RpbmEKK3RpbnRpbgordG9tY2F0Cit0cmVi b3IKK3RyZXZvcgordHdlZXR5Cit1bmljb3JuCit2YWxlbnRpbmUKK3ZhbGVyaWUKK3ZhbmlsbGEK K3Zlcm9uaWNhCit2aWN0b3IKK3ZpbmNlbnQKK3ZpcGVyCit3YXJyaW9yCit3YXJyaW9ycword2Vh c2VsCit3aGVlbHMKK3dpbGJ1cgord2luc3Rvbgord2lzZG9tCit3b21iYXQKK3hhdmllcgoreWVs bG93Cit6ZXBwZWxpbgorMTExMQorMTIxMgorQW5kcmV3CitGYW1pbHkKK0ZyaWVuZHMKK01pY2hh ZWwKK01pY2hlbGxlCitTbm9vcHkKK2FiY2QxMjM0CithYmNkZWZnCithYmlnYWlsCithY2NvdW50 CithZGFtCithbGV4MQorYWxpY2UxCithbGxpc29uCithbHBpbmUKK2FuZHJlMQorYW5kcmVhMQor YW5nZWwxCithbml0YQorYW5uZXR0ZQorYW50YXJlcworYXBhY2hlCithcG9sbG8KK2FyYWdvcm4K K2FyaXpvbmEKK2Fybm9sZAorYXJzZW5hbAorYXNkZmFzZGYKK2FzZGZnCithc2RmZ2hqaworYXZl bmdlcgorYmFieQorYmFieWRvbGwKK2JhaWxleQorYmFuYW5hCitiYXJyeQorYmFza2V0CitiYXRt YW4xCitiZWFuZXIKK2JlYXN0CitiZWF0cmljZQorYmVsbGEKK2JlcnRoYQorYmlnYmVuCitiaWdk b2cKK2JpZ2dsZXMKK2JpZ21hbgorYmlua3kKK2Jpb2xvZ3kKK2Jpc2hvcAorYmxvbmRpZQorYmx1 ZWZpc2gKK2JvYmNhdAorYm9zY28KK2JyYXZlcworYnJhemlsCiticnVjZQorYnJ1bm8KK2JydXR1 cworYnVmZmFsbworYnVsbGRvZworYnVsbGV0CitidWxsc2hpdAorYnVubnkKK2J1c2luZXNzCiti dXRjaAorYnV0bGVyCitidXR0ZXIKK2NhbGlmb3JuaWEKK2NhcmViZWFyCitjYXJvbAorY2Fyb2wx CitjYXJvbGUKK2Nhc3NpZQorY2FzdGxlCitjYXRhbGluYQorY2F0aGVyaW5lCitjY2NjY2MKK2Nl bGluZQorY2VudGVyCitjaGFtcGlvbgorY2hhbmVsCitjaGFvcworY2hlbHNlYTEKK2NoZXN0ZXIx CitjaGljYWdvCitjaGljbworY2hyaXN0aWFuCitjaHJpc3R5CitjaHVyY2gKK2NpbmRlcgorY29s bGVlbgorY29sb3JhZG8KK2NvbHVtYmlhCitjb21tYW5kZXIKK2Nvbm5pZQorY29va2llcworY29v a2luZworY29yb25hCitjb3dib3lzCitjb3lvdGUKK2NyYWlnCitjcmVhdGl2ZQorY3VkZGxlcwor Y3VlcnZvCitjdXRpZQorZGFkZHkKK2RhaXN5CitkYW5pZWwxCitkYW5pZWxsZQorZGF2aWRzCitk ZWF0aAorZGVuaXMKK2RlcmVrCitkZXNpZ24KK2Rlc3RpbnkKK2RpYW5hCitkaWFuZQorZGlja2hl YWQKK2RpZ2dlcgorZG9kZ2VyCitkb25uYQorZG91Z2llCitkcmFnb25mbHkKK2R5bGFuCitlYWds ZQorZWNsaXBzZQorZWxlY3RyaWMKK2VtZXJhbGQKK2V0b2lsZQorZXhjYWxpYnVyCitleHByZXNz CitmZW5kZXIKK2Zpb25hCitmaXJlbWFuCitmbGFzaAorZmxvcmlkYQorZmxvd2VycworZm9zdGVy CitmcmFuY2VzY28KK2ZyYW5jaW5lCitmcmFuY29pcworZnJhbmsKK2ZyZW5jaAorZnVja2ZhY2UK K2dlbWluaQorZ2VuZXJhbAorZ2VyYWxkCitnZXJtYW55CitnaWxiZXJ0Citnb2F3YXkKK2dvbGRl bgorZ29sZGZpc2gKK2dvb3NlCitnb3Jkb24KK2dyYWhhbQorZ3JhbnQKK2dyZWdvcnkKK2dyZXRj aGVuCitndW5uZXIKK2hhbm5haAoraGFyb2xkCitoYXJyaXNvbgoraGFydmV5CitoYXdrZXllCito ZWF2ZW4KK2hlaWRpCitoZWxlbgoraGVsZW5hCitoaXRoZXJlCitob2JiaXQKK2liYW5legoraWRv bnRrbm93CitpbnRlZ3JhCitpcmVsYW5kCitpcmVuZQoraXNhYWMKK2lzYWJlbAoramFja2Fzcwor amFja2llCitqYWNrc29uCitqYWd1YXIKK2phbWFpY2EKK2phcGFuCitqZW5ueTEKK2plc3NpZQor am9oYW4KK2pvaG5ueQoram9rZXIxCitqb3JkYW4yMworanVkaXRoCitqdWxpYQoranVtYW5qaQor a2FuZ2Fyb28KK2thcmVuMQora2F0aHkKK2tlZXBvdXQKK2tlaXRoMQora2VubmV0aAora2ltYmVy bHkKK2tpbmdkb20KK2tpdGthdAora3JhbWVyCitrcmlzdGVuCitsYXVyYQorbGF1cmllCitsYXdy ZW5jZQorbGF3eWVyCitsZWdlbmQKK2xpYmVydHkKK2xpZ2h0CitsaW5kc2F5CitsaW5kc2V5Cits aXNhCitsaXZlcnBvb2wKK2xvbGEKK2xvbmVseQorbG91aXMKK2xvdmVseQorbG92ZW1lCitsdWNh cworbWFkb25uYQorbWFsY29sbQorbWFsaWJ1CittYXJhdGhvbgorbWFyY2VsCittYXJpYTEKK21h cmlhaAorbWFyaWFoMQorbWFyaWx5bgorbWFyaW8KK21hcnZpbgorbWF1cmljZQorbWF4aW5lCitt YXh3ZWxsCittZQorbWVnZ2llCittZWxhbmllCittZWxpc3NhCittZWxvZHkKK21leGljbworbWlj aGFlbDEKK21pY2hlbGUKK21pZG5pZ2h0CittaWtlMQorbWlyYWNsZQorbWlzaGEKK21pc2hrYQor bW9sbHkxCittb25pcXVlCittb250cmVhbAorbW9vY293Cittb29yZQorbW9ycmlzCittb3VzZTEK K211bGRlcgorbmF1dGljYQorbmVsbGllCituZXd0b24KK25pY2sKK25pcnZhbmExCituaXNzYW4K K25vcm1hbgorbm90ZWJvb2sKK29jZWFuCitvbGl2aWVyCitvbGxpZQorb3Jhbmdlcworb3JlZ29u CitvcmlvbgorcGFuZGEKK3BhbmRvcmEKK3BhbnRoZXIKK3Bhc3Npb24KK3BhdHJpY2lhCitwZWFy bAorcGVld2VlCitwZW5jaWwKK3Blbm55CitwZW9wbGUKK3BlcmN5CitwZXJzb24KK3BldGVyMQor cGV0ZXkKK3BpY2Fzc28KK3BpZXJyZQorcGlua2Zsb3lkCitwb2xhcmlzCitwb2xpY2UKK3Bvb2tp ZTEKK3BvcHB5Citwb3dlcgorcHJlZGF0b3IKK3ByZXN0b24KK3ExdzJlMworcXVlZW4KK3F1ZWVu aWUKK3F1ZW50aW4KK3JhbHBoCityYW5kb20KK3JhbmdlcnMKK3JhcHRvcgorcmVhbGl0eQorcmVk cnVtCityZW1vdGUKK3JleW5vbGRzCityaG9uZGEKK3JpY2FyZG8KK3JpY2FyZG8xCityaWNreQor cml2ZXIKK3JvYWRydW5uZXIKK3JvYmluaG9vZAorcm9ja25yb2xsCityb2NreTEKK3JvbmFsZAor cm94eQorcnV0aGllCitzYWJyaW5hCitzYWt1cmEKK3NhbGx5CitzYW1wc29uCitzYW11ZWwKK3Nh bmRyYQorc2FudGEKK3NhcHBoaXJlCitzY2FybGV0CitzY29ycGlvCitzY290dDEKK3Njb3R0aWUK K3NjcnVmZnkKK3NlYXR0bGUKK3NlcmVuYQorc2hhbnRpCitzaGFyaworc2hvZ3VuCitzaW1vbgor c2luZ2VyCitza3VsbAorc2t5d2Fsa2VyCitzbGFja2VyCitzbWFzaGluZworc21pbGVzCitzbm93 Zmxha2UKK3NudWZmeQorc29jY2VyMQorc29sZWlsCitzb25ueQorc3Bhbmt5CitzcGVlZHkKK3Nw aWRlcgorc3Bvb2t5CitzdGFjZXkKK3N0YXI2OQorc3RhcnQKK3N0ZXZlbjEKK3N0aW5reQorc3Ry YXdiZXJyeQorc3R1YXJ0CitzdWdhcgorc3VuZGFuY2UKK3N1cGVyZmx5CitzdXphbm5lCitzdXp1 a2kKK3N3aW1tZXIKK3N3aW1taW5nCitzeXN0ZW0KK3RhZmZ5Cit0YXJ6YW4KK3RlZGR5Cit0ZWRk eWJlYXIKK3RlcnJ5Cit0aGVhdHJlCit0aHVuZGVyCit0aHVyc2RheQordGlua2VyCit0b290c2ll Cit0b3JuYWRvCit0cmFjeQordHJpY2lhCit0cmlkZW50Cit0cm9qYW4KK3RydW1hbgordHJ1bXBl dAordHVja2VyCit0dXJ0bGUKK3R5bGVyCit1dG9waWEKK3ZveWFnZXIKK3dhcmNyYWZ0Cit3YXJs b2NrCit3YXJyZW4KK3dhdGVyCit3YXluZQord2VuZHkKK3dpbGxpYW1zCit3aWxseQord2lub25h Cit3b29keQord29vZndvb2YKK3dyYW5nbGVyCit3cmlnaHQKK3hmaWxlcworeHh4eHh4Cit5YW5r ZWVzCit5dm9ubmUKK3plYnJhCit6ZW5pdGgKK3ppZ3phZworem9tYmllCit6eGMxMjMKK3p4Y3Zi CiswMDAwMDAKKzAwNzAwNworMTExMTEKKzExMTExMTExCisxMjMzMjEKKzE3MTcxNworMTgxODE4 CisxYTJiM2MKKzFjaHJpcworNHJ1bm5lcgorNTQzMjEKKzU1NTU1Cis2OTY5Cis3Nzc3Nzc3Cis3 ODk0NTYKKzg4ODg4ODg4CitBbGV4aXMKK0JhaWxleQorQ2hhcmxpZQorQ2hyaXMKK0RhbmllbAor RHJhZ29uCitFbGl6YWJldGgKK0hBUkxFWQorSGVhdGhlcgorSmVubmlmZXIKK0plc3NpY2EKK0pv cmRhbgorS0lMTEVSCitOaWNob2xhcworUGFzc3dvcmQKK1ByaW5jZXNzCitQdXJwbGUKK1JlYmVj Y2EKK1JvYmVydAorU2hhZG93CitTdGV2ZW4KK1N1bW1lcgorU3Vuc2hpbmUKK1N1cGVybWFuCitU YXlsb3IKK1Rob21hcworVmljdG9yaWEKK2FiY2QxMjMKK2FiY2RlCithY2NvcmQKK2FjdGl2ZQor YWZyaWNhCithaXJib3JuZQorYWxmYXJvCithbGljaWEKK2FsaWVucworYWxpbmEKK2FsaW5lCith bGlzb24KK2FsbGVuCithbG9oYQorYWxwaGExCithbHRoZWEKK2FsdGltYQorYW1hbmRhMQorYW1h emluZworYW1lcmljYQorYW1vdXIKK2FuZGVyc29uCithbmRyZQorYW5kcmV3MQorYW5kcm9tZWRh CithbmdlbHMKK2FuZ2llMQorYW5uaWUKK2FueXRoaW5nCithcHBsZTEKK2FwcGxlMgorYXBwbGVw aWUKK2FwcmlsCithcXVhcml1cworYXJpYW5lCithcmllbAorYXJsZW5lCithcnRlbWlzCithc2Rm MTIzNAorYXNkZmprbAorYXNobGV5MQorYXNocmFmCithc2h0b24KK2FzdGVyaXgKK2F0dGlsYQor YXV0dW1uCithdmF0YXIKK2JhYmVzCitiYW1iaQorYmFyYmllCitiYXJuZXkxCitiYXJyZXR0Citi YmFsbAorYmVhY2hlcworYmVhbmllCitiZWFucworYmVhdXR5CitiZWNjYQorYmVsaXplCitiZWxs ZQorYmVsbW9udAorYmVuamkKK2JlbnNvbgorYmVybmFyZG8KK2JlcnJ5CitiZXRzeQorYmV0dHkK K2JpZ2Jvc3MKK2JpZ3JlZAorYmlsbHkxCitiaXJkaWUKK2JpcnRoZGF5CitiaXNjdWl0CitiaXR0 ZXIKK2JsYWNramFjaworYmxhaAorYmxhbmNoZQorYmxvb2QKK2Jsb3dqb2IKK2Jsb3dtZQorYmx1 ZWV5ZXMKK2JsdWVzCitib2dhcnQKK2JvbWJheQorYm9vYmllCitib290cworYm9vdHNpZQorYm94 ZXJzCiticmFuZGkKK2JyZW50CiticmV3c3RlcgorYnJpZGdlCiticm9uY28KK2Jyb250ZQorYnJv b2tlCiticm90aGVyCiticnlhbgorYnViYmxlCitidWRkaGEKK2J1ZGdpZQorYnVydG9uCitidXR0 ZXJmbHkKK2J5cm9uCitjYWxlbmRhcgorY2FsdmluMQorY2FtZWwKK2NhbWlsbGUKK2NhbXBiZWxs CitjYW1waW5nCitjYW5jZXIKK2NhbmVsYQorY2Fubm9uCitjYXJib24KK2Nhcm5hZ2UKK2Nhcm9s eW4KK2NhcnJvdAorY2FzY2FkZQorY2F0ZmlzaAorY2F0aHkKK2NhdHdvbWFuCitjZWNpbGUKK2Nl bGljYQorY2hhbmdlCitjaGFudGFsCitjaGFyZ2VyCitjaGVycnkKK2NoaWFyYQorY2hpZWZzCitj aGluYQorY2hyaXMxMjMKK2NocmlzdDEKK2NocmlzdG1hcworY2hyaXN0b3BoZXIKK2NodWNrCitj aW5keTEKK2NpbmVtYQorY2l2aWMKK2NsYXVkZQorY2x1ZWxlc3MKK2NvYmFpbgorY29icmEKK2Nv ZHkKK2NvbGV0dGUKK2NvbGxlZ2UKK2NvbG9ycworY29sdDQ1Citjb25mdXNlZAorY29vbAorY29y dmV0dGUKK2Nvc21vCitjb3VudHJ5CitjcnVzYWRlcgorY3VubmluZ2hhbQorY3VwY2FrZQorY3lu dGhpYQorZGFnZ2VyCitkYW1taXQKK2RhbmNlcgorZGFwaG5lCitkYXJrc3RhcgorZGFycmVuCitk YXJyeWwKK2RhcndpbgorZGVib3JhaAorZGVjZW1iZXIKK2RlZWRlZQorZGVlem51dHMKK2RlbGFu bworZGVsZXRlCitkZW1vbgorZGVuaXNlCitkZW5ueQorZGVzZXJ0CitkZXNramV0CitkZXRyb2l0 CitkZXZpbAorZGV2aW5lCitkZXZvbgorZGV4dGVyCitkaWFubmUKK2RpZXNlbAorZGlyZWN0b3IK K2RpeGllCitkb2RnZXJzCitkb2dneQorZG9sbGFyCitkb2xseQorZG9taW5pcXVlCitkb21pbm8K K2RvbnRrbm93Citkb29naWUKK2RvdWRvdQorZG93bnRvd24KK2RyYWdvbjEKK2RyaXZlcgorZHVk ZQorZHVkbGV5CitkdXRjaGVzcworZHdpZ2h0CitlYWdsZTEKK2Vhc3RlcgorZWFzdGVybgorZWRp dGgKK2VkbXVuZAorZWlnaHQKK2VsZW1lbnQKK2VsaXNzYQorZWxsZW4KK2VsbGlvdAorZW1waXJl CitlbmlnbWEKK2VudGVycHJpc2UKK2VyaW4KK2VzY29ydAorZXN0ZWxsZQorZXVnZW5lCitldmVs eW4KK2V4cGxvcmUKK2ZhbWlseTEKK2ZhdGJveQorZmVsaXBlCitmZXJndXNvbgorZmVycmV0Citm ZXJyaXMKK2ZpcmViYWxsCitmaXNoZXMKK2Zpc2hpZQorZmxpZ2h0CitmbG9yaWRhMQorZmxvd2Vy cG90Citmb3J3YXJkCitmcmVkZGllCitmcmVlYmlyZAorZnJlZW1hbgorZnJpc2NvCitmcml0egor ZnJvZ2dpZQorZnJvZ2dpZXMKK2Zyb2dzCitmdWNrdQorZnV0dXJlCitnYWJieQorZ2FtZXMKK2dh cmNpYQorZ2FzdG9uCitnYXRld2F5CitnZW9yZ2UxCitnZW9yZ2lhCitnZXJtYW4KK2dlcm1hbnkx CitnZXRvdXQKK2dob3N0CitnaWJzb24KK2dpc2VsbGUKK2dtb25leQorZ29ibGluCitnb2JsdWUK K2dvbGx1bQorZ3JhbmRtYQorZ3JlbWxpbgorZ3JpenpseQorZ3J1bXB5CitndWVzcworZ3VpdGFy MQorZ3VzdGF2bworaGFnZ2lzCitoYWhhCitoYWlsZXkKK2hhbGxvd2VlbgoraGFtaWx0b24KK2hh bWxldAoraGFubmEKK2hhbnNvbgoraGFwcHkxMjMKK2hhcHB5ZGF5CitoYXJkY29yZQoraGFybGV5 MQoraGFycmlldAoraGFycmlzCitoYXJ2YXJkCitoZWFsdGgKK2hlYXJ0CitoZWF0aGVyMQoraGVh dGhlcjIKK2hlZGdlaG9nCitoZWxlbmUKK2hlbGxvMQoraGVsbG8xMjMKK2hlbGxvaGVsbG8KK2hl cm1lcworaGV5dGhlcmUKK2hpZ2hsYW5kCitoaWxkYQoraGlsbGFyeQoraGlzdG9yeQoraGl0bGVy Citob2JiZXMKK2hvbGlkYXkKK2hvbGx5Citob25kYTEKK2hvbmdrb25nCitob290aWUKK2hvcnNl Citob3Ryb2QKK2h1ZHNvbgoraHVtbWVyCitodXNraWVzCitpZGlvdAoraWZvcmdldAoraWxvdmV1 CitpbXBhY3QKK2luZG9uZXNpYQoraXJpbmEKK2lzYWJlbGxlCitpc3JhZWwKK2l0YWxpYQoraXRh bHkKK2phY2tpZTEKK2phY29iCitqYWtleQoramFtZXMxCitqYW1lc2JvbmQKK2phbWllCitqYW1q YW0KK2plZmZyZXkxCitqZW5uaWUKK2plbm55CitqZW5zZW4KK2plc3NlCitqZXNzZTEKK2plc3Rl cgoramV0aHJvCitqaW1ib2IKK2ppbW15Citqb2FubmEKK2pvZWxsZQoram9objMxNgoram9yZGll Citqb3JnZQoram9zaAoram91cm5leQoram95Y2UKK2p1YmlsZWUKK2p1bGVzCitqdWxpZW4KK2p1 bGlldAoranVuZWJ1ZworanVuaXBlcgoranVzdGRvaXQKK2thcmluCitrYXJpbmUKK2thcm1hCitr YXRlcmluYQora2F0aWUKK2thdGllMQora2F5bGEKK2tlZXBlcgora2VsbGVyCitrZW5kYWxsCitr ZW5ueQora2V0Y2h1cAora2luZ3MKK2tpc3NtZQora2l0dGVuCitraXR0eWNhdAora2tra2trCitr cmlzdGkKK2tyaXN0aW5lCitsYWJ0ZWMKK2xhZGRpZQorbGFkeWJ1ZworbGFuY2UKK2xhdXJlbAor bGF3c29uCitsZWFkZXIKK2xlbGFuZAorbGVtb24KK2xlc3RlcgorbGV0dGVyCitsZXR0ZXJzCits ZXh1czEKK2xpYnJhCitsaWdodHMKK2xpb25lbAorbGl0dGxlCitsaXp6eQorbG9saXRhCitsb25l c3RhcgorbG9uZ2hvcm4KK2xvb25leQorbG9yZW4KK2xvcm5hCitsb3NlcgorbG92ZXJzCitsb3Zl eW91CitsdWNpYQorbHVjaWZlcgorbHVja3kxNAorbWFkZGllCittYWRtYXgKK21hZ2ljMQorbWFn bnVtCittYWlkZW4KK21haW5lCittYW5hZ2VtZW50CittYW5zb24KK21hbnVlbAorbWFyY3VzCitt YXJpYQorbWFyaWVsbGUKK21hcmluZQorbWFyaW5vCittYXJzaGFsbAorbWFydGhhCittYXhtYXgK K21lYXRsb2FmCittZWRpY2FsCittZWdhbgorbWVsaW5hCittZW1waGlzCittZXJtYWlkCittaWFt aQorbWljaGVsCittaWNoaWdhbgorbWlja2V5MQorbWljcm9zb2Z0CittaWthZWwKK21pbGFubwor bWlsZXMKK21pbGxlbml1bQorbWlsbGlvbgorbWlyYW5kYQorbWlyaWFtCittaXNzaW9uCittbW1t bW0KK21vYmlsZQorbW9ua2V5MQorbW9ucm9lCittb250YW5hCittb250eQorbW9vbW9vCittb29u YmVhbQorbW9ycGhldXMKK21vdG9yb2xhCittb3ZpZXMKK21vemFydAorbXVuY2hraW4KK211cnJh eQorbXVzdGFuZzEKK25hZGlhCituYWRpbmUKK25hcG9sZW9uCituYXRpb24KK25hdGlvbmFsCitu ZXN0bGUKK25ld2xpZmUKK25ld3lvcmsxCituaWNob2xlCituaWtpdGEKK25pa2tpCituaW50ZW5k bworbm9raWEKK25vbW9yZQorbm9ybWFsCitub3J0b24KK25vd2F5CitudWdnZXQKK251bWJlcjkK K251bWJlcnMKK251cnNlCitudXRtZWcKK29oc2hpdAorb2ljdTgxMgorb21lZ2EKK29wZW51cAor b3JjaGlkCitvcmVvCitvcmxhbmRvCitwYWNrYXJkCitwYWNrZXJzCitwYWxvbWEKK3BhbmNha2UK K3BhbmljCitwYXJvbGEKK3BhcnJvdAorcGFydG5lcgorcGFzY2FsCitwYXRjaGVzCitwYXRyaW90 cworcGF1bGEKK3BhdWxpbmUKK3BheXRvbgorcGVhY2gKK3BlYW51dHMKK3BlZHJvMQorcGVnZ3kK K3BlcmZlY3QKK3BlcnJ5CitwZXRlcnBhbgorcGhpbGlwcworcGhpbGxpcHMKK3Bob25lCitwaWVy Y2UKK3BpZ2VvbgorcGluaworcGlvbmVlcgorcGlwZXIxCitwaXJhdGUKK3Bpc2NlcworcGxheWJv eQorcGx1dG8KK3BvZXRyeQorcG9udGlhYworcG9va2V5Citwb3BleWUKK3ByYXllcgorcHJlY2lv dXMKK3ByZWx1ZGUKK3ByZW1pZXIKK3B1ZGRpbgorcHVsc2FyCitwdXNzeQorcHVzc3kxCitxd2Vy dAorcXdlcnR5MTIKK3F3ZXJ0eXVpCityYWJiaXQxCityYWNoZWxsZQorcmFjb29uCityYW1ibwor cmFuZHkxCityYXZlbnMKK3JlZG1hbgorcmVkc2tpbnMKK3JlZ2dhZQorcmVnZ2llCityZW5lZQor cmVuZWdhZGUKK3Jlc2N1ZQorcmV2b2x1dGlvbgorcmljaGFyZDEKK3JpY2hhcmRzCityaWNobW9u ZAorcmlsZXkKK3JpcHBlcgorcm9iYnkKK3JvYmVydHMKK3JvY2sKK3JvY2tldDEKK3JvY2tpZQor cm9ja29uCityb2dlcjEKK3JvZ2Vycworcm9sYW5kCityb21tZWwKK3Jvb2tpZQorcm9vdGJlZXIK K3Jvc2llCitydWZ1cworcnVzdHkKK3J1dGhsZXNzCitzYWJiYXRoCitzYWJpbmEKK3NhZmV0eQor c2FpbnQKK3NhbWlhbQorc2FtbWllCitzYW1teQorc2Ftc2FtCitzYW5kaQorc2Fuam9zZQorc2Fw aGlyZQorc2FyYWgxCitzYXNraWEKK3Nhc3N5CitzYXR1cmRheQorc2NpZW5jZQorc2Nvb2J5Citz Y29vYnlkb28KK3Njb290ZXIxCitzY29ycGlvbgorc2NvdHR5CitzY291dHMKK3NlYXJjaAorc2Vw dGVtYmVyCitzZXJ2ZXIKK3NldmVuNworc2V4eQorc2hhZ2d5CitzaGFubnkKK3NoYW9saW4KK3No YXN0YQorc2hheW5lCitzaGVsbHkKK3NoZXJyeQorc2hpcmxleQorc2hvcnR5CitzaG90Z3VuCitz aWRuZXkKK3NpbWJhMQorc2luYXRyYQorc2lyaXVzCitza2F0ZQorc2tpcHBlcjEKK3NreWxlcgor c2xheWVyCitzbGVlcHkKK3NsaWRlcgorc21pbGUxCitzbWl0dHkKK3Ntb2tlCitzbmFrZXMKK3Nu YXBwZXIKK3Nub29wCitzb2xvbW9uCitzb3BoaWEKK3NwYWNlCitzcGFya3MKK3NwYXJ0YW4KK3Nw aWtlMQorc3BvbmdlCitzcHVycworc3F1YXNoCitzdGFyZ2F0ZQorc3RhcmxpZ2h0CitzdGFycwor c3RlcGgxCitzdGV2ZTEKK3N0ZXZlbnMKK3N0ZXdhcnQKK3N0b25lCitzdHJhbmdlcgorc3RyZXRj aAorc3Ryb25nCitzdHVkaW8KK3N0dW1weQorc3Vja2VyCitzdWNrbWUKK3N1bHRhbgorc3VtbWl0 CitzdW5maXJlCitzdW5zZXQKK3N1cGVyCitzdXBlcnN0YXIKK3N1cmZpbmcKK3N1c2FuMQorc3V0 dG9uCitzd2VkZW4KK3N3ZWV0cGVhCitzd2VldHkKK3N3b3JkZmlzaAordGFiYXRoYQordGFjb2Jl bGwKK3RhaXdhbgordGFtdGFtCit0YW5uZXIKK3RhcmdldAordGFzaGEKK3RhdHRvbwordGVxdWls YQordGVycnkxCit0ZXhhcwordGhhbmt5b3UKK3RoZWVuZAordGhvbXBzb24KK3RocmFzaGVyCit0 aWdlcjIKK3RpbWJlcgordGltb3RoeQordGlua2VyYmVsbAordG9wY2F0Cit0b3BoZXIKK3Rvc2hp YmEKK3RvdG90bwordHJhdmlzCit0cmVhc3VyZQordHJlZXMKK3RyaWNreQordHJpc2gKK3RyaXRv bgordHJvbWJvbmUKK3Ryb3VibGUKK3RydWNrZXIKK3R1cmJvCit0d2lucwordHlsZXIxCit1bHRp bWF0ZQordW5pcXVlCit1bml0ZWQKK3Vyc3VsYQordmFjYXRpb24KK3ZhbGxleQordmFtcGlyZQor dmFuZXNzYQordmVuaWNlCit2ZW51cwordmVybW9udAordmlja2kKK3ZpY2t5Cit2aWN0b3IxCit2 aW5jZW50MQordmlvbGV0Cit2aW9saW4KK3ZpcmdpbAordmlyZ2luaWEKK3Zpc2lvbgordm9sbGV5 Cit2b29kb28KK3ZvcnRleAord2FpdGluZword2Fua2VyCit3YXJuZXIKK3dhdGVyMQord2F5bmUx Cit3ZWJzdGVyCit3ZWV6ZXIKK3dlbmR5MQord2VzdGVybgord2hpdGUKK3doaXRuZXkKK3dob2Nh cmVzCit3aWxkY2F0Cit3aWxsaWFtMQord2lsbWEKK3dpbmRvdword2lubmlldGhlcG9vaAord29s ZmdhbmcKK3dvbHZlcmluZQord29uZGVyCit4eHh4eHh4eAoreWFtYWhhCit5YW5rZWUKK3lvZ2li ZWFyCit5b2xhbmRhCit5b21hbWEKK3l2ZXR0ZQoremFjaGFyeQoremVicmFzCit6eGN2Ym4KKzAw MDAwMDAwCisxMjEyMTIKKzEyMzRxd2VyCisxMzEzMTMKKzEzNTc5Cis5MDIxMAorOTk5OTk5OTkK K0FCQzEyMworYWN0aW9uCithbWVsaWUKK2FuYWNvbmRhCithcG9sbG8xMworYXJ0aXN0Cithc3No b2xlCitiZW5vaXQKK2Jlcm5hcmQKK2Jlcm5pZQorYmlnYmlyZAorYmxpenphcmQKK2JsdWVza3kK K2JvbmpvdXIKK2NhZXNhcgorY2FyZGluYWwKK2Nhcm9saW5hCitjZXNhcgorY2hhbmRsZXIKK2No YXBtYW4KK2NoYXJsaWUxCitjaGV2eQorY2hpcXVpdGEKK2Nob2NvbGF0Citjb2NvCitjb3VnYXJz Citjb3VydG5leQorZG9scGhpbnMKK2RvbWluaWMKK2RvbmtleQorZHVzdHkKK2VtaW5lbQorZW5l cmd5CitmZWFybGVzcworZm9yZXN0Citmb3JldmVyCitnbGVubgorZ3Vpbm5lc3MKK2hvdGRvZwor aW5kaWFuCitqYXJlZAoramltYm8KK2pvaG5zb24KK2pvam8KK2pvc2llCitrcmlzdGluCitsbG95 ZAorbG9ycmFpbmUKK2x5bm4KK21heGltZQorbWVtb3J5CittaW1pCittaXJyb3IKK25lYnJhc2th CituZW1lc2lzCituZXR3b3JrCituaWdlbAorb2F0bWVhbAorcGF0dG9uCitwZWRybworcGxhbmV0 CitwbGF5ZXJzCitwb3J0bGFuZAorcHJhaXNlCitwc2FsbXMKK3F3YXN6eAorcmFpZGVycworcmFt Ym8xCityYW5jaWQKK3NoYXduCitzaGVsbGV5Citzb2Z0YmFsbAorc3BlZWRvCitzcG9ydHMKK3Nz c3Nzcworc3RlZWxlCitzdGVwaAorc3RlcGhhbmkKK3N1bmRheQordGlmZmFueQordGlncmUKK3Rv cm9udG8KK3RyaXhpZQordW5kZWFkCit2YWxlbnRpbgordmVsdmV0Cit2aWtpbmcKK3dhbGtlcgor d2F0c29uCit5b3VuZworYmFieWdpcmwKK3ByZXR0eQoraG90dGllCit0ZWFtbworOTg3NjU0MzIx CituYXJ1dG8KK3Nwb25nZWJvYgorZGFuaWVsYQorcHJpbmNlc2EKK2NocmlzdAorYmxlc3NlZAor c2luZ2xlCitxYXp3c3gKK3Bva2Vtb24KK2lsb3ZleW91MQoraWxvdmV5b3UyCitmdWNreW91MQor aGFoYWhhCitwb29wCitibGVzc2luZworYmxhaGJsYWgKK2JsaW5rMTgyCisxMjNxd2UKK3RyaW5p dHkKK3Bhc3N3MHJkCitnb29nbGUKK2xvb2tpbmcKK3NwaXJpdAoraWxvdmV5b3UhCitxd2VydHkx CitvbmVsb3ZlCitteWxvdmUKKzIyMjIyMgoraWxvdmVnb2QKK2Zvb3RiYWxsMQorbG92aW5nCitl bW1hbnVlbAorMXEydzNlNHIKK3JlZDEyMworYmxhYmxhCisxMTIyMzMKK2hhbGxvCitzcGlkZXJt YW4KK3NpbXBzb25zCittb25zdGVyCitub3ZlbWJlcgorYnJvb2tseW4KK3Bvb3BvbworZGFya25l c3MKKzE1OTc1MworcGluZWFwcGxlCitjaGVzdGVyCisxcWF6MndzeAorZHJvd3NzYXAKK21vbmtl eTEyCit3b3JkcGFzcworcTF3MmUzcjQKK2Nvb2xuZXNzCisxMTIzNTgxMworc29tZXRoaW5nCith bGV4YW5kcmEKK2VzdHJlbGxhCittaWd1ZWwKK2lsb3ZlbWUKK3NheWFuZworcHJpbmNlc3MxCis1 NTU1NTUKKzk5OTk5OQorYWxlamFuZHJvCiticml0dGFueQorYWxlamFuZHJhCit0ZXF1aWVybwor YW50b25pbworOTg3NjU0CiswMDAwMAorZmVybmFuZG8KK2NvcmF6b24KK2NyaXN0aW5hCitraXNz ZXMKK215c3BhY2UKK3JlYmVsZGUKK2JhYnlndXJsCithbHlzc2EKK21haGFsa2l0YQorZ2Ficmll bGEKK3BpY3R1cmVzCitoZWxsb2tpdHR5CitiYWJ5Z2lybDEKK2FuZ2VsaWNhCittYWhhbGtvCitt YXJpYW5hCitlZHVhcmRvCithbmRyZXMKK3JvbmFsZG8KK2ludXlhc2hhCithZHJpYW5hCitjZWx0 aWMKK3NhbXN1bmcKK2FuZ2VsbworNDU2Nzg5CitzZWJhc3RpYW4KK2thcmluYQoraG90bWFpbAor MDEyMzQ1Njc4OQorYmFyY2Vsb25hCitjYW1lcm9uCitzbGlwa25vdAorY3V0aWVwaWUKKzUwY2Vu dAorYm9uaXRhCittYWdhbmRhCitiYWJ5Ym95CituYXRhbGllCitjdXRlYWtvCitqYXZpZXIKKzc4 OTQ1NjEyMworMTIzNjU0Citib3d3b3cKK3BvcnR1Z2FsCis3Nzc3NzcKK3ZvbGxleWJhbGwKK2ph bnVhcnkKK2NyaXN0aWFuCitiaWFuY2EKK2NocmlzYnJvd24KKzEwMTAxMAorc3dlZXQKK3Bhbmdl dAorYmVuZmljYQorbG92ZTEyMworbG9sbGlwb3AKK2NhbWlsYQorcXdlcnR5dWlvcAoraGFycnlw b3R0ZXIKK2loYXRleW91CitjaHJpc3RpbmUKK2xvcmVuYQorYW5kcmVlYQorY2hhcm1lZAorcmFm YWVsCiticmlhbm5hCithYWxpeWFoCitqb2huY2VuYQorbG92ZWxvdmUKK2dhbmdzdGEKKzMzMzMz MworaGlwaG9wCitteWJhYnkKK3NlcmdpbworbWV0YWxsaWNhCitteXNwYWNlMQorYmFieWJsdWUK K2JhZGJveQorZmVybmFuZGEKK3dlc3RsaWZlCitzYXN1a2UKK3N0ZWF1YQorcm9iZXJ0bworc2xp ZGVzaG93Cithc2RmZ2hqa2wKK3NhbnRpYWdvCitqYXlzb24KKzUyMDEzMTQKK2plcm9tZQorZ2Fu ZGFrbworZ2F0aXRhCitiYWJ5a28KKzI0NjgxMAorc3dlZXRoZWFydAorY2hpdmFzCithbGJlcnRv Cit2YWxlcmlhCituaWNvbGUxCisxMjM0NTY3ODkxMAorbGVvbmFyZG8KK2pheWpheQorbGlsaWFu YQorc2V4eWdpcmwKKzIzMjMyMworYW1vcmVzCithbnRob255MQorYml0Y2gxCitmYXRpbWEKK21p YW1vcgorbG92ZXIKK2xhbGFsYQorMjUyNTI1Citza2l0dGxlcworY29sb21iaWEKKzE1OTM1Nwor bWFudXRkCisxMjM0NTZhCiticml0bmV5CitrYXRyaW5hCitjaHJpc3RpbmEKK3Bhc2F3YXkKK21h aGFsCit0YXRpYW5hCitjYW50aWsKKzAxMjM0NTYKK3RlaXViZXNjCisxNDcyNTgzNjkKK25hdGFs aWEKK2ZyYW5jaXNjbworYW1vcmNpdG8KK3Bhb2xhCithbmdlbGl0bworbWFuY2hlc3RlcgorbW9t bXkxCisxNDcyNTgKK2FtaWdvcworbWFybG9uCitsaW5raW5wYXJrCisxNDc4NTIKK2RpZWdvCis0 NDQ0NDQKK2l2ZXJzb24KK2FuZHJlaQoranVzdGluZQorZnJhbmtpZQorcGltcGluCitmYXNoaW9u CitiZXN0ZnJpZW5kCitlbmdsYW5kCitoZXJtb3NhCis0NTYxMjMKKzEwMjAzMAorc3BvcnRpbmcK K2hlYXJ0cworcG90dGVyCitpbG92ZXUyCitudW1iZXIxCisyMTIxMjEKK3RydWVsb3ZlCitqYXlk ZW4KK3NhdmFubmFoCitob3R0aWUxCitnYW5kYQorc2NvdGxhbmQKK2lsb3ZlaGltCitzaGFraXJh Citlc3RyZWxsaXRhCiticmFuZG9uMQorc3dlZXRzCitmYW1pbGlhCitsb3ZlMTIKK29tYXJpb24K K21vbmtleXMKK2xvdmVyYm95CitlbGlqYWgKK3Jvbm5pZQorbWFtaXRhCis5OTk5OTk5OTkKK2Jy b2tlbgorcm9kcmlnbword2VzdHNpZGUKK21hdXJpY2lvCithbWlnYXMKK3ByZWNpb3NhCitzaG9w cGluZworZmxvcmVzCitpc2FiZWxsYQorbWFydGluZXoKK2VsYWluZQorZnJpZW5kc3RlcgorY2hl Y2hlCitncmFjaWUKK2Nvbm5vcgordmFsZW50aW5hCitkYXJsaW5nCitzYW50b3MKK2pvYW5uZQor ZnVja3lvdTIKK3BlYmJsZXMKK3N1bnNoaW5lMQorZ2FuZ3N0ZXIKK2dsb3JpYQorZGFya2FuZ2Vs CitiZXR0eWJvb3AKK2plc3NpY2ExCitjaGV5ZW5uZQorZHVzdGluCitpdWJpcmUKK2ExMjM0NTYK K3B1cnBsZTEKK2Jlc3RmcmllbmRzCitpbmxvdmUKK2JhdGlzdGEKK2thcmxhCitjaGFjaGEKK21h cmlhbgorc2V4eW1lCitwb2dpYWtvCitqb3JkYW4xCiswMTAyMDMKK2RhZGR5MQorZGFkZHlzZ2ly bAorYmlsbGFib25nCitwaW5reQorZXJpa2EKK3NrYXRlcgorbmVuaXRhCit0aWdnZXIxCitnYXRp dG8KK2xva2l0YQorbWFsZGl0YQorYnV0dGVyY3VwCitiYW1iYW0KK2dsaXR0ZXIKKzEyMzc4OQor c2lzdGVyCit6YWNlZnJvbgordG9raW9ob3RlbAorbG92ZXlhCitsb3ZlYnVnCitidWJibGVndW0K K21hcmlzc2EKK2NlY2lsaWEKK2xvbGx5cG9wCituaWNvbGFzCitwdXBwaWVzCithcmlhbmEKK2No dWJieQorc2V4eWJpdGNoCityb3hhbmEKK21lbWVtZQorc3VzYW5hCitiYWxsZXIKK2hvdHN0dWZm CitjYXJ0ZXIKK2JhYnlsb3ZlCithbmdlbGluYQorcGxheWdpcmwKK3N3ZWV0MTYKKzAxMjM0NQor YmhlYmhlCittYXJjb3MKK2xvdmVtZTEKK21pbGFncm9zCitsaWxtYW1hCitiZXlvbmNlCitsb3Zl bHkxCitjYXRkb2cKK2FybWFuZG8KK21hcmdhcml0YQorMTUxNTE1Citsb3ZlcworMjAyMDIwCitn ZXJhcmQKK3VuZGVydGFrZXIKK2FtaXN0YWQKK2NhcHJpY29ybgorZGVsZmluCitjaGVlcmxlYWRl cgorcGFzc3dvcmQyCitQQVNTV09SRAorbGl6emllCittYXR0aGV3MQorZW5yaXF1ZQorYmFkZ2ly bAorMTQxNDE0CitkYW5jaW5nCitjdXRlbWUKK2FtZWxpYQorc2t5bGluZQorYW5nZWxlcworamFu aW5lCitjYXJsaXRvcworanVzdG1lCitsZWdvbGFzCittaWNoZWxsZTEKK2NpbmRlcmVsbGEKK2pl c3VzY2hyaXN0CitpbG92ZWplc3VzCit0YXptYW5pYQordGVraWVybwordGhlYmVzdAorcHJpbmNl c2l0YQorbHVja3k3CitqZXN1Y3Jpc3RvCitidWRkeTEKK3JlZ2luYQorbXlzZWxmCitsaXBnbG9z cworamF6bWluCityb3NpdGEKK2NoaWNoaQorcGFuZ2l0CittaWVyZGEKKzc0MTg1Mjk2MworaGVy bmFuZGV6CithcnR1cm8KK3NpbHZpYQorbWVsdmluCitjZWxlc3RlCitwdXNzeWNhdAorZ29yZ2Vv dXMKK2hvbmV5a28KK215bGlmZQorYmFieWJvbworbG92ZXUKK2x1cGl0YQorcGFudGhlcnMKK2hv bGx5d29vZAorYWxmcmVkbworbXVzaWNhCitoYXdhaWkKK3NwYXJrbGUKK2tyaXN0aW5hCitzZXh5 bWFtYQorY3JhenkKK3NjYXJmYWNlCiswOTg3NjUKK2hheWRlbgorbWljaGVhbAorMjQyNDI0Cisw OTg3NjU0MzIxCittYXJpc29sCitqZXJlbWlhaAorbWhpbmUKK2lzYWlhaAorbG9saXBvcAorYnV0 dGVyZmx5MQoreGJveDM2MAorbWFkYWxpbmEKK2FuYW1hcmlhCit5b3VybW9tCitqYXNtaW5lMQor YnViYmxlczEKK2JlYXRyaXoKK2RpYW1vbmRzCitmcmllbmRzaGlwCitzd2VldG5lc3MKK2Rlc2ly ZWUKKzc0MTg1MgoraGFubmFoMQorYmFuYW5hcworanVsaXVzCitsZWFubmUKK21hcmllMQorbG92 ZXIxCit0d2lua2xlCitmZWJydWFyeQorYmViaXRhCis4NzY1NDMyMQordHdpbGlnaHQKK2ltaXNz eW91Citwb2xsaXRvCithc2hsZWUKK2Nvb2tpZTEKKzE0Nzg1MjM2OQorYmVja2hhbQorc2ltb25l CitudXJzaW5nCit0b3JyZXMKK2RhbWlhbgorMTIzMTIzMTIzCitqb3NodWExCitiYWJ5ZmFjZQor ZGluYW1vCittb21teQoranVsaWFuYQorY2Fzc2FuZHJhCityZWRzb3gKK2d1bmRhbQorMDAwMAor b3U4MTIKK2RhdmUKK2dvbGYKK21vbHNvbgorTW9uZGF5CituZXdwYXNzCit0aHgxMTM4CitJbnRl cm5ldAorY29rZQorZm9vYmFyCithYmMKK2Zpc2gKK2ZyZWQKK2hlbHAKK25jYzE3MDFkCituZXd1 c2VyCitub25lCitwYXQKK2RvZworZHVjaworZHVrZQorZmxveWQKK2d1ZXN0Citqb2UKK2tpbmdm aXNoCittaWNybworc2FtCit0ZWxlY29tCit0ZXN0MQorNzc3NworYWJzb2x1dAorYmFieWxvbjUK K2JhY2t1cAorYmlsbAorYmlyZDMzCitkZWxpdmVyCitmaXJlCitmbGlwCitnYWxpbGVvCitnb3Bo ZXIKK2hhbnNvbG8KK2phbmUKK2ppbQorbW9tCitwYXNzd2QKK3BoaWwKK3BoaXNoCitwb3JzY2hl OTExCityYWluCityZWQKK3NlcmdlaQordHJhaW5pbmcKK3RydWNrCit2aWRlbwordm9sdm8KKzAw NworMTk2OQorNTY4MworQm9uZDAwNworRnJpZGF5CitIZW5kcml4CitPY3RvYmVyCitUYXVydXMK K2FhYQorYWxleGFuZHIKK2NhdGFsb2cKK2NoYWxsZW5nZQorY2xpcHBlcgorY29sdHJhbmUKK2N5 cmFubworZGFuCitkYXduCitkZWFuCitkZXV0c2NoCitkaWxiZXJ0CitlLW1haWwKK2V4cG9ydAor Zm9yZAorZm91bnRhaW4KK2ZveAorZnJvZworZ2FicmllbGwKK2dhcmxpYworZ29mb3JpdAorZ3Jh dGVmdWwKK2hvb3BzCitsYWR5CitsZWR6ZXAKK2xlZQorbWFpbG1hbgorbWFudHJhCittYXJrZXQK K21hemRhMQorbWV0YWxsaWMKK25jYzE3MDFlCituZXNiaXR0CitvcGVuCitwZXRlCitxdWVzdAor cmVwdWJsaWMKK3Jlc2VhcmNoCitzdXByYQordGFyYQordGVzdGluZworeGFuYWR1Cit4eHh4Cit6 YXBob2QKK3pldXMKKzAwMDcKKzEwMjIKKzEwc25lMQorMTk3MworMTk3OAorMjAwMAorMjIyMgor M2JlYXJzCitCcm9hZHdheQorRmlzaGVyCitKZWFubmUKK0tpbGxlcgorS25pZ2h0CitNYXN0ZXIK K1BlcHBlcgorU2llcnJhCitUZW5uaXMKK2FiYWNhYgorYWJjZAorYWNlCithY3JvcG9saXMKK2Ft eQorYW5kZXJzCithdmVuaXIKK2Jhc2lsCitiYXNzCitiZWVyCitiZW4KK2JsaXNzCitibG93Zmlz aAorYm9zcworYnJpZGdlcworYnVjaworYnVnc3kKK2J1bGwKK2Nhbm5vbmRhbGUKK2Nhbm9uCitj YXRuaXAKK2NoaXAKK2NpdmlsCitjb250ZW50Citjb29rCitjb3JkZWxpYQorY3JhY2sxCitjeWJl cgorZGFpc2llCitkYXJrMQorZGF0YWJhc2UKK2RlYWRoZWFkCitkZW5hbGkKK2RlcGVjaGUKK2Rp Y2tlbnMKK2VtbWl0dAorZW50cm9weQorZmFyb3V0CitmYXJzaWRlCitmZWVkYmFjaworZmlkZWwK K2ZpcmVuemUKK2Zpc2gxCitmbGV0Y2gKK2Zvb2wKK2ZvenppZQorZnVuCitnYXJnb3lsZQorZ2Fz bWFuCitnb2xkCitncmFwaGljCitoZWxsCitpbWFnZQoraW50ZXJuCitpbnRyZXBpZAoramVmZgor amtsMTIzCitqb2VsCitqb2hhbm5hMQora2lkZGVyCitraW0KK2tpbmcKK2tpcmsKK2tyaXMKK2xh bWJkYQorbGVvbgorbG9naWNhbAorbG9ycmllCittYWpvcgorbWFyaW5lcgorbWFyazEKK21heAor bWVkaWEKK21lcmxvdAorbWlkd2F5CittaW5lCittbW91c2UKK21vb24KK21vcGFyCittb3J0aW1l cgorbmVybWFsCituaW5hCitvbHNlbgorb3BlcmEKK292ZXJraWxsCitwYWNlcnMKK3BhY2tlcgor cGljYXJkCitwb2xhcgorcG9sbworcHJpbXVzCitwcm9tZXRoZXVzCitwdWJsaWMKK3JhZGlvCity YXN0YWZhcmlhbgorcmVwdGlsZQorcm9iCityb2JvdGVjaAorcm9kZW8KK3JvbGV4Cityb3VnZQor cm95CitydWJ5CitzYWxhc2FuYQorc2NhcmVjcm93CitzY291dAorc2N1YmExCitzZXJnZXkKK3Nr aWJ1bQorc2t1bmsKK3NvdW5kCitzdGFydGVyCitzdGluZzEKK3N1bmJpcmQKK3RiaXJkCit0ZWZs b24KK3RlbXBvcmFsCit0ZXJtaW5hbAordGhlCit0aGVqdWRnZQordGltZQordG9ieQordG9kYXkK K3Rva3lvCit0cmVlCit0cm91dAordmFkZXIKK3ZhbAordmFsaGFsbGEKK3dpbmRzdXJmCit3b2xm Cit3b2xmMQoreGNvdW50cnkKK3lvZGEKK3l1a29uCisxMjEzCisxMjE0CisxMjI1CisxMzEzCisx ODE4CisxOTc1CisxOTc3CisxOTkxCisxa2l0dHkKKzIwMDEKKzIwMjAKKzIxMTIKKzJraWRzCisz MzMKKzQ0NDQKKzUwNTAKKzU3Y2hldnkKKzdkd2FyZnMKK0FuaW1hbHMKK0FyaWVsCitCaXNtaWxs YWgKK0Jvb2JvbworQm9zdG9uCitDYXJvbAorQ29tcHV0ZXIKK0NyZWF0aXZlCitDdXJ0aXMKK0Rl bmlzZQorRWFnbGVzCitFc3RoZXIKK0Zpc2hpbmcKK0ZyZWRkeQorR2FuZGFsZgorR29sZGVuCitH b29iZXIKK0hhY2tlcgorSGFybGV5CitIZW5yeQorSGVyc2hleQorSmFja3NvbgorSmVyc2V5CitK b2FubmEKK0pvaG5zb24KK0thdGllCitLaXR0ZW4KK0xpYmVydHkKK0xpbmRzYXkKK0xpemFyZAor TWFkZWxpbmUKK01hcmdhcmV0CitNYXh3ZWxsCitNb25leQorTW9uc3RlcgorUGFtZWxhCitQZWFj aGVzCitQZXRlcgorUGhvZW5peAorUGlnbGV0CitQb29raWUKK1JhYmJpdAorUmFpZGVycworUmFu ZG9tCitSdXNzZWxsCitTYW1teQorU2F0dXJuCitTa2VldGVyCitTbW9rZXkKK1NwYXJreQorU3Bl ZWR5CitTdGVybGluZworVGhlcmVzYQorVGh1bmRlcgorVmluY2VudAorV2lsbG93CitXaW5uaWUK K1dvbHZlcmluZQorYWFhYQorYWFyZHZhcmsKK2FiYm90dAorYWN1cmEKK2FkbWluCithZG1pbjEK K2Fkcm9jaworYWVyb2JpY3MKK2FnZW50CithaXJ3b2xmCithbGkKK2FsaWVuCithbGxlZ3JvCith bGxzdGF0ZQorYWx0YW1pcmEKK2FsdGltYTEKK2FuZHJldyEKK2FubgorYW5uZQorYW5uZWxpCith cHRpdmEKK2Fycm93Cithc2RmO2xragorYXNzbXVuY2gKK2JhcmFrYQorYmFybnlhcmQKK2JhcnQK K2JhcnRtYW4KK2JlYXN0eQorYmVhdmlzMQorYmViZQorYmVsZ2l1bQorYmVvd3VsZgorYmVyeWwK K2Jlc3QKK2JoYXJhdAorYmljaG9uCitiaWdhbAorYmlrZXIKK2JpbGJvCitiaWxscworYmltbWVy CitiaW9jaGVtCitiaXJkeQorYmxpbmRzCitibGl0egorYmx1ZWplYW4KK2JvZ2V5Citib2d1cwor Ym91bGRlcgorYm91cmJvbgorYm94ZXIKK2JyYWluCiticmFuY2gKK2JyaXRhaW4KK2Jyb2tlcgor YnVja3MKK2J1ZmZldHQKK2J1Z3MKK2J1bGxzCitidXJucworYnV6egorYzAwcGVyCitjYWxnYXJ5 CitjYW1heQorY2FybAorY2F0CitjZW1lbnQKK2Nlc3NuYQorY2hhZAorY2hhaW5zYXcKK2NoYW1l bGVvbgorY2hhbmcKK2NoZXNzCitjaGlub29rCitjaG91ZXR0ZQorY2hyb25vcworY2ljZXJvCitj aXJjdWl0CitjaXJxdWUKK2NpcnJ1cworY2xhcHRvbgorY2xhcmtzb24KK2NsYXNzCitjbGF1ZGVs CitjbGVvCitjbGlmZgorY2xvY2sKK2NvbG9yCitjb21ldAorY29uY2VwdAorY29uY29yZGUKK2Nv b2xiZWFuCitjb3JreQorY29ybmZsYWtlCitjb3J3aW4KK2Nvd3MKK2NyZXNjZW50Citjcm9zcwor Y3Jvd2xleQorY3RodWxodQorY3VudAorY3VycmVudAorY3V0bGFzcworZGFlZGFsdXMKK2RhZ2dl cjEKK2RhaWx5CitkYWxlCitkYW5hCitkYXl0ZWsKK2RlYWQKK2RlY2tlcgorZGhhcm1hCitkaWxs d2VlZAorZGlwcGVyCitkaXNjbworZGl4b24KK2RvaXRub3cKK2Rvb3JzCitkb3JrCitkb3VnCitk dXRjaAorZWZmaWUKK2VsbGEKK2Vsc2llCitlbmdhZ2UKK2VyaWMxCitlcm5pZTEKK2VzY29ydDEK K2V4Y2VsCitmYWN1bHR5CitmYWlydmlldworZmF1c3QKK2ZlbnJpcworZmluYW5jZQorZmlyc3QK K2Zpc2hoZWFkCitmbGFuZGVycworZmxldXJzCitmbHV0ZQorZmx5Ym95CitmbHllcgorZnJhbmth CitmcmVkZXJpYworZnJlZQorZnJvbnQyNDIKK2Zyb250aWVyCitmdWdhemkKK2Z1bnRpbWUKK2dh YnkKK2dhZWxpYworZ2FtYmxlcgorZ2FtbWFwaGkKK2dhcmZ1bmtlbAorZ2FydGgKK2dhcnkKK2dh dGV3YXkyCitnYXRvcjEKK2dpYmJvbnMKK2dpZ2kKK2dpbGdhbWVzaAorZ29hdAorZ29kaXZhCitn b2V0aGUKK2dvZmlzaAorZ29vZAorZ3JhbXBzCitncmF2aXMKK2dyYXkKK2dyZWVkCitncmVnCitn cmVnMQorZ3JldGEKK2dyZXR6a3kKK2d1aWRvCitndW1ieQoraDJvcG9sbworaGFtaWQKK2hhbmsK K2hhd2tleWUxCitoZWFsdGgxCitoZWxsbzgKK2hlbHAxMjMKK2hlbHBlcgoraG9tZXJqCitob29z aWVyCitob3BlCitodWFuZworaHVnbworaHlkcm9nZW4KK2liNnViOQoraW5zaWdodAoraW5zdHJ1 Y3RvcgoraW50ZWdyYWwKK2lvbWVnYQoraXJpcworaXp6eQoramF6egoramVhbgoramVlcHN0ZXIK K2pldHRhMQoram9hbmllCitqb3NlZQoram95CitqdWxpYTIKK2p1bWJvCitqdW1wCitqdXN0aWNl NAora2FsYW1hem9vCitrYWxpCitrYXQKK2thdGUKK2tlcmFsYQora2lkcwora2l3aQora2xlZW5l eAora29tYmF0CitsYW1lcgorbGFzZXIKK2xhc2VyamV0CitsYXNzaWUxCitsZWJsYW5jCitsZWdh bAorbGVvCitsaWZlCitsaW9ucworbGl6Citsb2dnZXIKK2xvZ29zCitsb2lzbGFuZQorbG9raQor bG9uZ2VyCitsb3JpCitsb3N0Citsb3R1cworbG91CittYWNoYQorbWFjcm9zcworbWFkb2thCitt YWtlaXRzbworbWFsbGFyZAorbWFyYworbWF0aAorbWF0dGluZ2x5CittZWNoYW5pYworbWVpc3Rl cgorbWVyY2VyCittZXJkZQorbWVycmlsbAorbWljaGFsCittaWNob3UKK21pY2tlbAorbWlub3UK K21vYnlkaWNrCittb2RlbQorbW9qbworbW9udGFuYTMKK21vbnRyb3NlCittb3RvcgorbW93Z2xp CittdWxkZXIxCittdXNjbGUKK25laWwKK25ldXRyaW5vCituZXdhY2NvdW50CituaWNrbGF1cwor bmlnaHRzaGFkZQorbmlnaHR3aW5nCituaWtlCitub25lMQorbm9wYXNzCitub3V2ZWF1Citub3Zl bGwKK29heGFjYQorb2Jpd2FuCitvYnNlc3Npb24KK29ydmlsbGUKK290dGVyCitvenp5CitwYWNr cmF0CitwYWludAorcGFwYQorcGFyYWRpZ20KK3Bhc3MKK3BhdmVsCitwZXRlcmsKK3BoaWFscGhh CitwaGlzaHkKK3BpYW5vMQorcGlhbm9tYW4KK3BpYW5vcworcGlwZWxpbmUKK3BsYXRvCitwbGF5 Citwb2V0aWMKK3ByaW50CitwcmludGluZworcHJvdmlkZXIKK3FxcTExMQorcXVlYmVjCitxd2Vy CityYWNlcgorcmFjZXJ4CityYWRhcgorcmFmaWtpCityYWxlaWdoCityYXN0YTEKK3JlZGNsb3Vk CityZWRmaXNoCityZWR3aW5nCityZWR3b29kCityZWVkCityZW5lCityZXpub3IKK3JoaW5vCity aXBwbGUKK3JpdGEKK3JvYm9jb3AKK3JvYm90aWNzCityb2NoZQorcm9uaQorcm9zc2lnbm9sCity dWdnZXIKK3NhZmV0eTEKK3NhaWdvbgorc2F0b3JpCitzYXR1cm41CitzY2huYXBwcworc2NvdGNo CitzY3ViYQorc2VjcmV0Mworc2Vla2VyCitzZXJ2aWNlcworc2V4CitzaGFuZ2hhaQorc2hhemFt CitzaGVsdGVyCitzaWdtYWNoaQorc2lnbmFsCitzaWduYXR1cmUKK3NpbXNpbQorc2t5ZGl2ZQor c2xpY2sKK3NtZWdtYQorc21pdGhzCitzbXVyZnkKK3Nub3cKK3NvYmVyMQorc29uaWNzCitzb255 CitzcGF6egorc3BoeW54CitzcG9jaworc3Bvb24KK3Nwb3QKK3Nwcm9ja2V0CitzdGFyYnVjawor c3RlZWwKK3N0ZXBoaQorc3RpbmcKK3N0b2Nrcworc3RvcmFnZQorc3RyYXQKK3N0cmF0bworc3R1 ZAorc3R1ZGVudDIKK3N1c2FubmEKK3N3YW5zb24KK3N3aW0KK3N3aXR6ZXIKK3N5c3RlbTUKK3Qt Ym9uZQordGFsb24KK3RhcmhlZWwKK3RhdGEKK3RhemRldmlsCit0ZXN0ZXIKK3Rlc3R0ZXN0Cit0 aGlzaXNpdAordGhvcm5lCit0aWdodGVuZAordGltCit0b20KK3Rvb2wKK3RvdGFsCit0b3VjYW4K K3RyYW5zZmVyCit0cmFuc2l0Cit0cmFuc3BvcnQKK3RyYXBwZXIKK3RyYXNoCit0cm9waHkKK3R1 Y3NvbgordHVyYm8yCit1bml0eQordXBzaWxvbgordmVkZGVyCit2ZXR0ZQordmlrcmFtCit2aXJh Z28KK3Zpc3VhbAordm9sY2Fubword2FsZGVuCit3YWxkbword2FsbGV5ZQord2VibWFzdGVyCit3 ZWRnZQord2hhbGUxCit3aGl0Cit3aG92aWxsZQord2liYmxlCit3aWxsCit3b21iYXQxCit3b3Jk Cit3b3JsZAoreC1maWxlcworeHh4MTIzCit6YWNrCit6ZXBwbGluCit6b2x0YW4KK3pvb21lcgor MTIzZ28KKzIxMTIyMTEyCis1NTU1Cis5MTEKK0Z1Y2tZb3UKK0Z1Y2t5b3UKK0dpem1vCitIZWxs bworTWljaGVsCitRd2VydHkKK1dpbmRvd3MKK2FuZ3VzCithc3BlbgorYXNzCitiaXJkCitib29z dGVyCitieXRlbWUKK2NhdHMKK2NoYW5nZWl0CitjaHJpc3RpYQorY2hyaXN0b3BoCitjbGFzc3Jv b20KK2Nsb2NsbworY29ycmFkbworZGFzaGEKK2ZpY3Rpb24KK2ZyZW5jaDEKK2Z1YmFyCitnYXRv cgorZ2lsbGVzCitnb2NvdWdzCitoaWxiZXJ0Citob2xhCitob21lCitqdWR5Citrb2tvCitsdWx1 CittYWMKK21hY2ludG9zaAorbWFpbGVyCittYXJzCittZW93CituZTE0NjkKK25pa2kKK3BhdWwK K3BvbGl0aWNzCitwb21tZQorcHJvcGVydHkKK3J1dGgKK3NhbGVzCitzYWx1dAorc2Nyb29nZQor c2tpZG9vCitzcGFpbgorc3VyZgorc3lsdmllCitzeW1ib2wKK2ZvcnVtCityb3RpbWkKK2dvZAor c2F2ZWQKKzI1ODAKKzE5OTgKK3h4eAorMTkyOAorNzc3CitpbmZvCithCituZXR3YXJlCitzdW4K K3RlY2gKK2Rvb20KK21tbQorb25lCitwcHAKKzE5MTEKKzE5NDgKKzE5OTYKKzUyNTIKK0NoYW1w cworVHVlc2RheQorYmFjaAorY3JvdworZG9uCitkcmFmdAoraGFsOTAwMAoraGVyem9nCitodWV5 CitqZXRocm90dWxsCitqdXNzaQorbWFpbAorbWlraQorbmljYXJhbworc25vd3NraQorMTMxNgor MTQxMgorMTQzMAorMTk1MgorMTk1MworMTk1NQorMTk1NgorMTk2MAorMTk2NAorMXF3MjNlCisy MjAwCisyMjUyCiszMDEwCiszMTEyCis0Nzg4Cis2MjYyCitBbHBoYQorQmFzdGFyZAorQmVhdmlz CitDYXJkaW5hbAorQ2VsdGljcworQ291Z2FyCitEYXJrbWFuCitGaWdhcm8KK0ZvcnR1bmUKK0dl cm9uaW1vCitIYW1tZXIKK0hvbWVyCitKYW5ldAorTWVsbG9uCitNZXJsb3QKK01ldGFsbGljCitN b250cmVhbAorTmV3dG9uCitQYWxhZGluCitQZWFudXRzCitTZXJ2aWNlCitWZXJub24KK1dhdGVy bG9vCitXZWJzdGVyCitha2kxMjMKK2FxdWEKK2F5bG1lcgorYmV0YQorYm96bworY2FyCitjaGF0 CitjaGluYWNhdAorY29yYQorY291cmllcgorZG9nYmVydAorZWllaW8KK2VsaW5hMQorZmx5Citm dW5ndXkKK2Z1enoKK2dnZW9yZ2UKK2dsaWRlcjEKK2dvbmUKK2hhd2sKK2hlaWtraQoraGlzdG9p cmUKK2h1Z2gKK2lmNndhczkKK2luZ3ZhcgoramFuCitqZWRpCitqaW1pCitqdWhhbmkKK2toYW4K K2xpbWEKK21pZHZhbGUKK25la28KK25lc2JpdAorbmV4dXM2CituaXNzZQorbm90dGExCitwYW0K K3BhcmsKK3BvbGUKK3BvcGUKK3B5cm8KK3JhbQorcmVsaWFudAorcmV4CitydXNoCitzZW91bAor c2tpcAorc3Rhbgorc3VlCitzdXp5Cit0YWIKK3Rlc3RpCit0aGVsb3JheAordGlrYQordG50Cit0 b3RvMQordHJlCit3aW5kCit4LW1lbgoreHl6Cit6eGMKKzM2OQorQWJjZGVmCitBc2RmZ2gKK0No YW5nZW1lCitOQ0MxNzAxCitaeGN2Ym5tCitkZW1vCitkb29tMgorZ29vZC1sdWNrCitob21lYnJl dworbTE5MTFhMQorbmF0CituZTE0MTBzCituZTE0YTY5Cit6aG9uZ2d1bworc2FtcGxlMTIzCisw ODUyCitiYXNmCitPVTgxMgorIUAjJCUKK2luZm9ybWl4CittYWpvcmRvbW8KK25ld3MKK3RlbXAK K3RyZWsKKyFAIyQlXgorIUAjJCVeJioKK1BlbnRpdW0KK1JhaXN0bGluCithZGkKK2JtdworbGF3 CituZXcKK29wdXMKK3BsdXMKK3Zpc2EKK3d3dworenp6CisxMzMyCisxOTUwCiszMTQxCiszNTMz Cis0MDU1Cis0ODU0Cis2MzAxCitCb256bworQ2hhbmdlTWUKK0Zyb250MjQyCitHcmV0ZWwKK01p Y2hlbDEKK05vcmlrbworU2lkZWtpY2sKK1N2ZXJpZ2UKK1N3b29zaAorV29vZHJvdworYXllbGV0 CitiYXJuCitiZXRhY2FtCitiaXoKK2JvYXQKK2N1ZGEKK2RvYworaGFsCitoYWxsb3dlbGwKK2hh cm8KK2hvc2VoZWFkCitpbG1hcmkKK2lybWVsaQorajFsMnQzCitqZXIKK2tjaW4KK2tlcnJ5YQor a2lzc2EyCitsZWFmCitsaXNzYWJvbgorbWFydAorbWF0dGkxCittZWNoCittb3JlY2F0cworcGFh Z2FsCitwZXJmb3JtYQorcHJvZgorcmF0aW8KK3NoaXAKK3NsaXAKK3N0aXZlcnMKK3RhcGFuaQor dGFyZ2FzCit0ZXN0MgordGVzdDMKK3R1bGEKK3VuaXgKK3VzZXIxCit4YW50aAorIUAjJCVeJgor MTcwMWQKK0AjJCVeJgorUXdlcnQKK2FsbG8KK2RpcmsKK25ld2NvdXJ0CituaXRlCitub3R1c2Vk Citzc3MKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0JwotLS0g YS9zcWwvc2hhcmUvZXJybXNnLXV0ZjgudHh0CTIwMTItMDUtMjQgMjI6MjE6MTYgKzAwMDAKKysr IGIvc3FsL3NoYXJlL2Vycm1zZy11dGY4LnR4dAkyMDEyLTA1LTI4IDA5OjIxOjQwICswMDAwCkBA IC02ODAyLDYgKzY4MDIsOCBAQCBFUl9JTlZBTElEX1lFQVJfQ09MVU1OX0xFTkdUSAogICBlbmcg IllFQVIoJWx1KSBjb2x1bW4gdHlwZSBpcyBkZXByZWNhdGVkLiBDcmVhdGluZyBZRUFSKDQpIGNv bHVtbiBpbnN0ZWFkLiIKICAgcnVzICLQotC40L8gWUVBUiglbHUpINCx0L7Qu9C10LUg0L3QtSDQ v9C+0LTQtNC10YDQttC40LLQsNC10YLRgdGPLCDQstC80LXRgdGC0L4g0L3QtdCz0L4g0LHRg9C0 0LXRgiDRgdC+0LfQtNCw0L3QsCDQutC+0LvQvtC90LrQsCDRgSDRgtC40L/QvtC8IFlFQVIoNCku IgogCitFUl9OT1RfVkFMSURfUEFTU1dPUkQKKyAgZW5nICJZb3VyIHBhc3N3b3JkIGRvZXMgbm90 IHNhdGlzZnkgdGhlIGN1cnJlbnQgcG9saWN5IHJlcXVpcmVtZW50cyIKICMKICMgIEVuZCBvZiA1 LjYgZXJyb3IgbWVzc2FnZXMuCiAjCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9hY2wuY2Mn Ci0tLSBhL3NxbC9zcWxfYWNsLmNjCTIwMTItMDUtMjggMDU6NDY6MDcgKzAwMDAKKysrIGIvc3Fs L3NxbF9hY2wuY2MJMjAxMi0wNS0yOCAwOToyMTo0MCArMDAwMApAQCAtNDksNiArNDksNyBAQAog I2luY2x1ZGUgInNxbF9jb25uZWN0LmgiCiAjaW5jbHVkZSAiaG9zdG5hbWUuaCIKICNpbmNsdWRl ICJzcWxfZGIuaCIKKyNpbmNsdWRlIDxteXNxbC9wbHVnaW5fdmFsaWRhdGVfcGFzc3dvcmQuaD4K IAogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKQEAgLTE4MCw2ICsxODEsMTAgQEAg c3RhdGljIExFWF9TVFJJTkcgb2xkX3Bhc3N3b3JkX3BsdWdpbl9uYQogICBDX1NUUklOR19XSVRI X0xFTigibXlzcWxfb2xkX3Bhc3N3b3JkIikKIH07CiAgIAorc3RhdGljIExFWF9TVFJJTkcgdmFs aWRhdGVfcGFzc3dvcmRfcGx1Z2luX25hbWU9IHsKKyAgQ19TVFJJTkdfV0lUSF9MRU4oInZhbGlk YXRlX3Bhc3N3b3JkIikKK307CisKIC8vLyBAdG9kbyBtYWtlIGl0IGNvbmZpZ3VyYWJsZQogTEVY X1NUUklORyAqZGVmYXVsdF9hdXRoX3BsdWdpbl9uYW1lPSAmbmF0aXZlX3Bhc3N3b3JkX3BsdWdp bl9uYW1lOwogCkBAIC05OTE5LDMgKzk5MjQsNDEgQEAgbXlzcWxfZGVjbGFyZV9wbHVnaW4obXlz cWxfcGFzc3dvcmQpCiB9CiBteXNxbF9kZWNsYXJlX3BsdWdpbl9lbmQ7CiAKKy8qICAKKyBQQVNT V09SRF9WQUxJREFUSU9OX0NPREUsIGludm9raW5nIGFwcHJvcHJpYXRlIHBsdWdpbiB0byB2YWxp ZGF0ZQorIHRoZSBwYXNzd29yZCBzdHJlbmd0aC4KKyovCisKKy8qIGZvciB2YWxpZGF0ZV9wYXNz d29yZF9zdHJlbmd0aCBTUUwgZnVuY3Rpb24gKi8KK2ludCBjaGVja19wYXNzd29yZF9zdHJlbmd0 aChTdHJpbmcgKnBhc3N3b3JkKQoreworICBpbnQgcmVzPSAwOworICBwbHVnaW5fcmVmIHBsdWdp bj0gbXlfcGx1Z2luX2xvY2tfYnlfbmFtZSgwLCAmdmFsaWRhdGVfcGFzc3dvcmRfcGx1Z2luX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1ZU1FMX1ZB TElEQVRFX1BBU1NXT1JEX1BMVUdJTik7CisgIGlmIChwbHVnaW4pCisgIHsKKyAgICBzdF9teXNx bF92YWxpZGF0ZV9wYXNzd29yZCAqcGFzc3dvcmRfc3RyZW5ndGg9CisgICAgICAgICAgICAgICAg ICAgICAgKHN0X215c3FsX3ZhbGlkYXRlX3Bhc3N3b3JkICopIHBsdWdpbl9kZWNsKHBsdWdpbikt PmluZm87CisKKyAgICByZXM9IHBhc3N3b3JkX3N0cmVuZ3RoLT5nZXRfcGFzc3dvcmRfc3RyZW5n dGgocGFzc3dvcmQpOworICAgIHBsdWdpbl91bmxvY2soMCwgcGx1Z2luKTsKKyAgfQorICByZXR1 cm4ocmVzKTsKK30KKworLyogY2FsbGVkIHdoZW4gbmV3IHVzZXIgaXMgY3JlYXRlZCBvciBleHNp c3RpbmcgcGFzc3dvcmQgaXMgY2hhbmdlZCAqLwordm9pZCBjaGVja19wYXNzd29yZF9wb2xpY3ko U3RyaW5nICpwYXNzd29yZCkKK3sKKyAgcGx1Z2luX3JlZiBwbHVnaW49IG15X3BsdWdpbl9sb2Nr X2J5X25hbWUoMCwgJnZhbGlkYXRlX3Bhc3N3b3JkX3BsdWdpbl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNWVNRTF9WQUxJREFURV9QQVNTV09SRF9Q TFVHSU4pOworICBpZiAocGx1Z2luKQorICB7CisgICAgc3RfbXlzcWxfdmFsaWRhdGVfcGFzc3dv cmQgKnBhc3N3b3JkX3ZhbGlkYXRlPQorICAgICAgICAgICAgICAgICAgICAgIChzdF9teXNxbF92 YWxpZGF0ZV9wYXNzd29yZCAqKSBwbHVnaW5fZGVjbChwbHVnaW4pLT5pbmZvOworCisgICAgaWYg KCFwYXNzd29yZF92YWxpZGF0ZS0+dmFsaWRhdGVfcGFzc3dvcmQocGFzc3dvcmQpKQorICAgICAg bXlfZXJyb3IoRVJfTk9UX1ZBTElEX1BBU1NXT1JELCBNWUYoMCkpOworCisgICAgcGx1Z2luX3Vu bG9jaygwLCBwbHVnaW4pOworICB9Cit9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9hY2wu aCcKLS0tIGEvc3FsL3NxbF9hY2wuaAkyMDEyLTAzLTA2IDE0OjI5OjQyICswMDAwCisrKyBiL3Nx bC9zcWxfYWNsLmgJMjAxMi0wNS0yMyAwOTo1NDo0MCArMDAwMApAQCAtMjUxLDcgKzI1MSw4IEBA IGludCBmaWxsX3NjaGVtYV9zY2hlbWFfcHJpdmlsZWdlcyhUSEQgKnQKIGludCBmaWxsX3NjaGVt YV90YWJsZV9wcml2aWxlZ2VzKFRIRCAqdGhkLCBUQUJMRV9MSVNUICp0YWJsZXMsIEl0ZW0gKmNv bmQpOwogaW50IGZpbGxfc2NoZW1hX2NvbHVtbl9wcml2aWxlZ2VzKFRIRCAqdGhkLCBUQUJMRV9M SVNUICp0YWJsZXMsIEl0ZW0gKmNvbmQpOwogaW50IHdpbGRfY2FzZV9jb21wYXJlKENIQVJTRVRf SU5GTyAqY3MsIGNvbnN0IGNoYXIgKnN0cixjb25zdCBjaGFyICp3aWxkc3RyKTsKLQoraW50IGNo ZWNrX3Bhc3N3b3JkX3N0cmVuZ3RoKFN0cmluZyAqcGFzc3dvcmQpOwordm9pZCBjaGVja19wYXNz d29yZF9wb2xpY3koU3RyaW5nICpwYXNzd29yZCk7CiAjaWZkZWYgTk9fRU1CRURERURfQUNDRVNT X0NIRUNLUwogI2RlZmluZSBjaGVja19ncmFudChBLEIsQyxELEUsRikgMAogI2RlZmluZSBjaGVj a19ncmFudF9kYihBLEIpIDAKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3BsdWdpbi5jYycK LS0tIGEvc3FsL3NxbF9wbHVnaW4uY2MJMjAxMi0wNC0xMyAxMjowMDozOSArMDAwMAorKysgYi9z cWwvc3FsX3BsdWdpbi5jYwkyMDEyLTA1LTIzIDA5OjU0OjQwICswMDAwCkBAIC0zMyw2ICszMyw3 IEBACiAjaW5jbHVkZSAic3FsX2F1ZGl0LmgiCiAjaW5jbHVkZSA8bXlzcWwvcGx1Z2luX2F1dGgu aD4KICNpbmNsdWRlICJsb2NrLmgiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1Z U1FMX0xPQ0tfSUdOT1JFX1RJTUVPVVQKKyNpbmNsdWRlIDxteXNxbC9wbHVnaW5fdmFsaWRhdGVf cGFzc3dvcmQuaD4KIAogI2luY2x1ZGUgPGFsZ29yaXRobT4KIApAQCAtNzIsNyArNzMsOCBAQCBj b25zdCBMRVhfU1RSSU5HIHBsdWdpbl90eXBlX25hbWVzW01ZU1FMCiAgIHsgQ19TVFJJTkdfV0lU SF9MRU4oIklORk9STUFUSU9OIFNDSEVNQSIpIH0sCiAgIHsgQ19TVFJJTkdfV0lUSF9MRU4oIkFV RElUIikgfSwKICAgeyBDX1NUUklOR19XSVRIX0xFTigiUkVQTElDQVRJT04iKSB9LAotICB7IENf U1RSSU5HX1dJVEhfTEVOKCJBVVRIRU5USUNBVElPTiIpIH0KKyAgeyBDX1NUUklOR19XSVRIX0xF TigiQVVUSEVOVElDQVRJT04iKSB9LAorICB7IENfU1RSSU5HX1dJVEhfTEVOKCJWQUxJREFURSBQ QVNTV09SRCIpIH0KIH07CiAKIGV4dGVybiBpbnQgaW5pdGlhbGl6ZV9zY2hlbWFfdGFibGUoc3Rf cGx1Z2luX2ludCAqcGx1Z2luKTsKQEAgLTg5LDEzICs5MSwxMyBAQCBleHRlcm4gaW50IGZpbmFs aXplX2F1ZGl0X3BsdWdpbihzdF9wbHVnCiBwbHVnaW5fdHlwZV9pbml0IHBsdWdpbl90eXBlX2lu aXRpYWxpemVbTVlTUUxfTUFYX1BMVUdJTl9UWVBFX05VTV09CiB7CiAgIDAsaGFfaW5pdGlhbGl6 ZV9oYW5kbGVydG9uLDAsMCxpbml0aWFsaXplX3NjaGVtYV90YWJsZSwKLSAgaW5pdGlhbGl6ZV9h dWRpdF9wbHVnaW4sMCwwCisgIGluaXRpYWxpemVfYXVkaXRfcGx1Z2luLDAsMCwwCiB9OwogCiBw bHVnaW5fdHlwZV9pbml0IHBsdWdpbl90eXBlX2RlaW5pdGlhbGl6ZVtNWVNRTF9NQVhfUExVR0lO X1RZUEVfTlVNXT0KIHsKICAgMCxoYV9maW5hbGl6ZV9oYW5kbGVydG9uLDAsMCxmaW5hbGl6ZV9z Y2hlbWFfdGFibGUsCi0gIGZpbmFsaXplX2F1ZGl0X3BsdWdpbiwwLDAKKyAgZmluYWxpemVfYXVk aXRfcGx1Z2luLDAsMCwwCiB9OwogCiAjaWZkZWYgSEFWRV9ETE9QRU4KQEAgLTEyMSw3ICsxMjMs OCBAQCBzdGF0aWMgaW50IG1pbl9wbHVnaW5faW5mb19pbnRlcmZhY2VfdmVyCiAgIE1ZU1FMX0lO Rk9STUFUSU9OX1NDSEVNQV9JTlRFUkZBQ0VfVkVSU0lPTiwKICAgTVlTUUxfQVVESVRfSU5URVJG QUNFX1ZFUlNJT04sCiAgIE1ZU1FMX1JFUExJQ0FUSU9OX0lOVEVSRkFDRV9WRVJTSU9OLAotICBN WVNRTF9BVVRIRU5USUNBVElPTl9JTlRFUkZBQ0VfVkVSU0lPTgorICBNWVNRTF9BVVRIRU5USUNB VElPTl9JTlRFUkZBQ0VfVkVSU0lPTiwKKyAgTVlTUUxfVkFMSURBVEVfUEFTU1dPUkRfSU5URVJG QUNFX1ZFUlNJT04KIH07CiBzdGF0aWMgaW50IGN1cl9wbHVnaW5faW5mb19pbnRlcmZhY2VfdmVy c2lvbltNWVNRTF9NQVhfUExVR0lOX1RZUEVfTlVNXT0KIHsKQEAgLTEzMiw3ICsxMzUsOCBAQCBz dGF0aWMgaW50IGN1cl9wbHVnaW5faW5mb19pbnRlcmZhY2VfdmVyCiAgIE1ZU1FMX0lORk9STUFU SU9OX1NDSEVNQV9JTlRFUkZBQ0VfVkVSU0lPTiwKICAgTVlTUUxfQVVESVRfSU5URVJGQUNFX1ZF UlNJT04sCiAgIE1ZU1FMX1JFUExJQ0FUSU9OX0lOVEVSRkFDRV9WRVJTSU9OLAotICBNWVNRTF9B VVRIRU5USUNBVElPTl9JTlRFUkZBQ0VfVkVSU0lPTgorICBNWVNRTF9BVVRIRU5USUNBVElPTl9J TlRFUkZBQ0VfVkVSU0lPTiwKKyAgTVlTUUxfVkFMSURBVEVfUEFTU1dPUkRfSU5URVJGQUNFX1ZF UlNJT04KIH07CiAKIC8qIHN1cHBvcnQgZm9yIFNlcnZpY2VzICovCgo9PT0gbW9kaWZpZWQgZmls ZSAnc3FsL3NxbF9wbHVnaW5fc2VydmljZXMuaCcKLS0tIGEvc3FsL3NxbF9wbHVnaW5fc2Vydmlj ZXMuaAkyMDExLTA2LTMwIDE1OjUwOjQ1ICswMDAwCisrKyBiL3NxbC9zcWxfcGx1Z2luX3NlcnZp Y2VzLmgJMjAxMi0wNS0yMyAwOTo1NDo0MCArMDAwMApAQCAtNTAsNyArNTAsMTcgQEAgc3RhdGlj IHN0cnVjdCBteV9wbHVnaW5fbG9nX3NlcnZpY2UgbXlfcAogICBteV9wbHVnaW5fbG9nX21lc3Nh Z2UKIH07CiAKLQorc3RhdGljIHN0cnVjdCBteXNxbF9zdHJpbmdfc2VydmljZV9zdCBteXNxbF9z dHJpbmdfaGFuZGxlcj0geworICBteXNxbF9zdHJpbmdfY29udmVydF90b19jaGFyX3B0ciwKKyAg bXlzcWxfc3RyaW5nX2dldF9pdGVyYXRvciwKKyAgbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX25leHQs CisgIG15c3FsX3N0cmluZ19pdGVyYXRvcl9pc3VwcGVyLAorICBteXNxbF9zdHJpbmdfaXRlcmF0 b3JfaXNsb3dlciwKKyAgbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2lzZGlnaXQsCisgIG15c3FsX3N0 cmluZ190b19sb3dlcmNhc2UsCisgIG15c3FsX3N0cmluZ19mcmVlLAorICBteXNxbF9zdHJpbmdf aXRlcmF0b3JfZnJlZSwKK307CiAKIHN0YXRpYyBzdHJ1Y3Qgc3Rfc2VydmljZV9yZWYgbGlzdF9v Zl9zZXJ2aWNlc1tdPQogewpAQCAtNjAsNSArNzAsNyBAQCBzdGF0aWMgc3RydWN0IHN0X3NlcnZp Y2VfcmVmIGxpc3Rfb2Zfc2VyCiAgIHsgIm15X3RocmVhZF9zY2hlZHVsZXJfc2VydmljZSIsCiAg ICAgVkVSU0lPTl9teV90aHJlYWRfc2NoZWR1bGVyLCAmbXlfdGhyZWFkX3NjaGVkdWxlcl9oYW5k bGVyIH0sCiAgIHsgIm15X3BsdWdpbl9sb2dfc2VydmljZSIsIFZFUlNJT05fbXlfcGx1Z2luX2xv ZywgJm15X3BsdWdpbl9sb2dfaGFuZGxlciB9LAorICB7ICJteXNxbF9zdHJpbmdfc2VydmljZSIs CisgICAgVkVSU0lPTl9teXNxbF9zdHJpbmcsICZteXNxbF9zdHJpbmdfaGFuZGxlciB9LAogfTsK IAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfeWFjYy55eScKLS0tIGEvc3FsL3NxbF95YWNj Lnl5CTIwMTItMDUtMjQgMjI6MjE6MTYgKzAwMDAKKysrIGIvc3FsL3NxbF95YWNjLnl5CTIwMTIt MDUtMjggMDk6MjE6NDAgKzAwMDAKQEAgLTE1MjE3LDYgKzE1MjE3LDkgQEAgZ3JhbnRfdXNlcjoK ICAgICAgICAgICAgICQkPSQxOyAkMS0+cGFzc3dvcmQ9JDQ7CiAgICAgICAgICAgICBpZiAoTGV4 LT5zcWxfY29tbWFuZCA9PSBTUUxDT01fUkVWT0tFKQogICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgICAgU3RyaW5nICpwYXNzd29yZCA9IG5ldyAoWVlUSEQtPm1lbV9yb290 KSBTdHJpbmcoKGNvbnN0IGNoYXIqKSQ0LnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFlZVEhELT52YXJpYWJsZXMuY2hhcmFjdGVyX3NldF9jbGllbnQpOworICAgICAg ICAgICAgY2hlY2tfcGFzc3dvcmRfcG9saWN5KHBhc3N3b3JkKTsKICAgICAgICAgICAgIGlmICgk NC5sZW5ndGgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGlmIChZWVRIRC0+dmFyaWFi bGVzLm9sZF9wYXNzd29yZHMpCgo9PT0gYWRkZWQgZmlsZSAnc3FsL3N0cmluZ19zZXJ2aWNlLmNj JwotLS0gYS9zcWwvc3RyaW5nX3NlcnZpY2UuY2MJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAor KysgYi9zcWwvc3RyaW5nX3NlcnZpY2UuY2MJMjAxMi0wNS0yMyAwOTo1NDo0MCArMDAwMApAQCAt MCwwICsxLDE1NiBAQAorLyogQ29weXJpZ2h0IMKpIDIwMTIsIE9yYWNsZSBhbmQvb3IgaXRzIGFm ZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIG9mIHRo ZSBMaWNlbnNlLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK KyAgIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxICBVU0EgKi8KKworCisvKiAgCisgIFRoaXMgZmlsZSBwcm92aWRlIG15 c3FsX3N0cmluZyBzZXJ2aWNlIHRvIHBsdWdpbnMuCisgIG9wZXJhdGlvbnMgb24gbXlzcWxfc3Ry aW5nIGNhbiBiZSBwZXJmb3JtZWQgYnkgcGx1Z2lucyB2aWEgdGhlc2Ugc2VydmljZQorICBmdW5j dGlvbnMuCisqLworCisjaW5jbHVkZSA8bXlfc3lzLmg+CisjaW5jbHVkZSAic3RyaW5nX3NlcnZp Y2UuaCIKKy8qICAKKyAgVGhpcyBzZXJ2aWNlIGZ1bmN0aW9uIGNvbnZlcnRzIHRoZSBteXNxbF9z dHJpbmcgdG8gdGhlIGNoYXJhY3RlciBzZXQKKyAgc3BlY2lmaWVkIGJ5IGNoYXJzZXRfbmFtZSBw YXJhbWV0ZXIuCisqLworZXh0ZXJuICJDIgoraW50IG15c3FsX3N0cmluZ19jb252ZXJ0X3RvX2No YXJfcHRyKG15c3FsX3N0cmluZ19oYW5kbGUgc3RyaW5nX2hhbmRsZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjaGFyc2V0X25hbWUsIGNoYXIgKmJ1 ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmVycm9yKQor eworICBTdHJpbmcgKnN0cj0gKFN0cmluZyAqKSBzdHJpbmdfaGFuZGxlOworICBpbnQgbGVuPSAo aW50KW15X2NvbnZlcnQoYnVmZmVyLCAxMDAsICZteV9jaGFyc2V0X3V0ZjhfZ2VuZXJhbF9jaSwg c3RyLT5wdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ci0+bGVuZ3RoKCksIHN0 ci0+Y2hhcnNldCgpLCAodWludCopIGVycm9yKTsKKyAgcmV0dXJuIChsZW4pOworfQorCisvKiAg CisgIFRoaXMgc2VydmljZSBmdW5jdGlvbiBkZWFsbG9jYXRlcyB0aGUgbXlzcWxfc3RyaW5nX2hh bmRsZSBhbGxvY2F0ZWQgb24KKyAgc2VydmVyIGFuZCB1c2VkIGluIHBsdWdpbnMuCisqLworZXh0 ZXJuICJDIgordm9pZCBteXNxbF9zdHJpbmdfZnJlZShteXNxbF9zdHJpbmdfaGFuZGxlIHN0cmlu Z19oYW5kbGUpCit7CisgIG15X2ZyZWUoKFN0cmluZyAqKSBzdHJpbmdfaGFuZGxlKTsKK30KKwor LyogIAorICBUaGlzIHNlcnZpY2UgZnVuY3Rpb24gZGVhbGxvY2F0ZXMgdGhlIG15c3FsX3N0cmlu Z19pdGVyYXRvcl9oYW5kbGUKKyAgYWxsb2NhdGVkIG9uIHNlcnZlciBhbmQgdXNlZCBpbiBwbHVn aW5zLgorKi8KK2V4dGVybiAiQyIKK3ZvaWQgbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2ZyZWUobXlz cWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSBpdGVyYXRvcl9oYW5kbGUpCit7CisgIG15X2ZyZWUo KHN0cmluZ19pdGVyYXRvciAqKSBpdGVyYXRvcl9oYW5kbGUpOworfQorCisvKiBUaGlzIHNlcnZp Y2UgZnVuY3Rpb24gYWxsb2NhdGUgbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hhbmRsZSBhbmQgcmV0 dXJuIGl0ICovCitleHRlcm4gIkMiCitteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlIG15c3Fs X3N0cmluZ19nZXRfaXRlcmF0b3IobXlzcWxfc3RyaW5nX2hhbmRsZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ19oYW5kbGUpCit7 CisgIFN0cmluZyAqc3RyPSAoU3RyaW5nICopIHN0cmluZ19oYW5kbGU7CisgIHN0cmluZ19pdGVy YXRvciAqaXRlcmF0b3I9IChzdHJpbmdfaXRlcmF0b3IgKikgbXlfbWFsbG9jKHNpemVvZgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3Qgc3Rfc3RyaW5n X2l0ZXJhdG9yKSwgTVlGKDApKTsKKyAgaXRlcmF0b3ItPml0ZXJhdG9yX3N0cj0gc3RyOworICBp dGVyYXRvci0+aXRlcmF0b3JfcHRyPSBzdHItPnB0cigpOworICBpdGVyYXRvci0+Y3R5cGU9IDA7 CisgIHJldHVybiAoaXRlcmF0b3IpOworfQorCisvKiBQcm92aWRlIHNlcnZpY2Ugd2hpY2ggcmV0 dXJucyB0aGUgbmV4dCBteXNxbF9zdHJpbmdfaXRlcmF0b3JfaGFuZGxlICovCitleHRlcm4gIkMi CitpbnQgbXlzcWxfc3RyaW5nX2l0ZXJhdG9yX25leHQobXlzcWxfc3RyaW5nX2l0ZXJhdG9yX2hh bmRsZSBpdGVyYXRvcl9oYW5kbGUpCit7CisgIGludCBjaGFyX2xlbiwgY2hhcl90eXBlOworICBz dHJpbmdfaXRlcmF0b3IgKml0ZXJhdG9yPSAoc3RyaW5nX2l0ZXJhdG9yICopIGl0ZXJhdG9yX2hh bmRsZTsKKyAgU3RyaW5nICpzdHI9IGl0ZXJhdG9yLT5pdGVyYXRvcl9zdHI7CisgIGNvbnN0IENI QVJTRVRfSU5GTyAqY3M9IHN0ci0+Y2hhcnNldCgpOworICBjaGFyICplbmQ9IChjaGFyKikgc3Ry LT5wdHIoKSArIHN0ci0+bGVuZ3RoKCk7CisgIGlmIChpdGVyYXRvci0+aXRlcmF0b3JfcHRyID09 IChjb25zdCBjaGFyKikgZW5kKQorICAgIHJldHVybiAoMCk7CisgIGNoYXJfbGVuPSAoY3MtPmNz ZXQtPmN0eXBlKGNzLCAmY2hhcl90eXBlLCAodWNoYXIqKSBpdGVyYXRvci0+aXRlcmF0b3JfcHRy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWNoYXIqKSBlbmQpKTsKKyAgaXRlcmF0 b3ItPmN0eXBlPSBjaGFyX3R5cGU7CisgIGl0ZXJhdG9yLT5pdGVyYXRvcl9wdHIrPSAoY2hhcl9s ZW4gPiAwID8gY2hhcl9sZW4gOiAoY2hhcl9sZW4gPCAwCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAtY2hhcl9sZW4gOiAxKSk7CisgIHJl dHVybiAoMSk7Cit9CisKKy8qICAKKyAgUHJvdmlkZSBzZXJ2aWNlIHdoaWNoIGNhbGN1bGF0ZSB3 ZWF0aGVyIHRoZSBjdXJyZW50IGl0ZXJhdG9yX3B0ciBwb2ludHMgdG8KKyAgdXBwZXIgY2FzZSBj aGFyYWN0ZXIgb3Igbm90CisqLworZXh0ZXJuICJDIgoraW50IG15c3FsX3N0cmluZ19pdGVyYXRv cl9pc3VwcGVyKG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUgaXRlcmF0b3JfaGFuZGxlKQor eworICBzdHJpbmdfaXRlcmF0b3IgKml0ZXJhdG9yPSAoc3RyaW5nX2l0ZXJhdG9yICopIGl0ZXJh dG9yX2hhbmRsZTsKKyAgcmV0dXJuIChpdGVyYXRvci0+Y3R5cGUgJiBfTVlfVSk7Cit9CisKKy8q ICAKKyAgUHJvdmlkZSBzZXJ2aWNlIHdoaWNoIGNhbGN1bGF0ZSB3ZWF0aGVyIHRoZSBjdXJyZW50 IGl0ZXJhdG9yX3B0ciBwb2ludHMgdG8KKyAgbG93ZXIgY2FzZSBjaGFyYWN0ZXIgb3Igbm90Cisq LworZXh0ZXJuICJDIgoraW50IG15c3FsX3N0cmluZ19pdGVyYXRvcl9pc2xvd2VyKG15c3FsX3N0 cmluZ19pdGVyYXRvcl9oYW5kbGUgaXRlcmF0b3JfaGFuZGxlKQoreworICBzdHJpbmdfaXRlcmF0 b3IgKml0ZXJhdG9yPSAoc3RyaW5nX2l0ZXJhdG9yICopIGl0ZXJhdG9yX2hhbmRsZTsKKyAgcmV0 dXJuIChpdGVyYXRvci0+Y3R5cGUgJiBfTVlfTCk7Cit9CisKKy8qICAKKyAgUHJvdmlkZSBzZXJ2 aWNlIHdoaWNoIGNhbGN1bGF0ZSB3ZWF0aGVyIHRoZSBjdXJyZW50IGl0ZXJhdG9yX3B0ciBwb2lu dHMgdG8KKyAgZGlnaXQgb3Igbm90CisqLworZXh0ZXJuICJDIgoraW50IG15c3FsX3N0cmluZ19p dGVyYXRvcl9pc2RpZ2l0KG15c3FsX3N0cmluZ19pdGVyYXRvcl9oYW5kbGUgaXRlcmF0b3JfaGFu ZGxlKQoreworICBzdHJpbmdfaXRlcmF0b3IgKml0ZXJhdG9yPSAoc3RyaW5nX2l0ZXJhdG9yICop IGl0ZXJhdG9yX2hhbmRsZTsKKyAgcmV0dXJuIChpdGVyYXRvci0+Y3R5cGUgJiBfTVlfTk1SKTsK K30KKworLyogIAorICBUaGlzIGZ1bmN0aW9uIHByb3ZpZGUgcGx1Z2luIHNlcnZpY2UgdG8gY29u dmVydCBhIFN0cmluZyBwb2ludGVkIGJ5IGhhbmRsZSB0bworICBsb3dlciBjYXNlLiBDb252ZXJz aW9uIGRlcGVuZHMgb24gdGhlIGNsaWVudCBjaGFyYWN0ZXIgc2V0IGluZm8KKyovCitleHRlcm4g IkMiCitteXNxbF9zdHJpbmdfaGFuZGxlIG15c3FsX3N0cmluZ190b19sb3dlcmNhc2UobXlzcWxf c3RyaW5nX2hhbmRsZSBzdHJpbmdfaGFuZGxlKQoreworICBTdHJpbmcgKnN0cj0gKFN0cmluZyAq KSBzdHJpbmdfaGFuZGxlOworICBTdHJpbmcgKnJlczsKKyAgY29uc3QgQ0hBUlNFVF9JTkZPICpj cz0gc3RyLT5jaGFyc2V0KCk7CisKKyAgaWYgKGNzLT5jYXNlZG5fbXVsdGlwbHkgPT0gMSkKKyAg eworICAgIHVpbnQgbGVuOworICAgIGxlbj0gY3MtPmNzZXQtPmNhc2VkbihjcywgKGNoYXIqKSBz dHItPnB0cigpLCBzdHItPmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hh ciopIHN0ci0+cHRyKCksIHN0ci0+bGVuZ3RoKCkpOworICAgIHN0ci0+bGVuZ3RoKGxlbik7Cisg ICAgcmVzPSBzdHI7CisgIH0KKyAgZWxzZQorICB7CisgICAgdWludCBsZW49IHN0ci0+bGVuZ3Ro KCkgKiBjcy0+Y2FzZWRuX211bHRpcGx5OworICAgIHRlbXBfc3RyLmFsbG9jKGxlbik7CisgICAg dGVtcF9zdHIuc2V0X2NoYXJzZXQoY3MpOworICAgIGxlbj0gY3MtPmNzZXQtPmNhc2Vkbihjcywg KGNoYXIqKSBzdHItPnB0cigpLCBzdHItPmxlbmd0aCgpLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAoY2hhciopIHRlbXBfc3RyLnB0cigpLCBsZW4pOworICAgIHRlbXBfc3RyLmxlbmd0aChs ZW4pOworICAgIHJlcz0gJnRlbXBfc3RyOworICB9CisgIHJldHVybiAocmVzKTsKK30KCj09PSBh ZGRlZCBmaWxlICdzcWwvc3RyaW5nX3NlcnZpY2UuaCcKLS0tIGEvc3FsL3N0cmluZ19zZXJ2aWNl LmgJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9zcWwvc3RyaW5nX3NlcnZpY2UuaAky MDEyLTA1LTIzIDA5OjU0OjQwICswMDAwCkBAIC0wLDAgKzEsMzEgQEAKKy8qIENvcHlyaWdodCDC qSAyMDEyLCBPcmFjbGUgYW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVk LgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZS4KKworICAgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu a2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSAgVVNBICovCisKKyNp Zm5kZWYgTVlfU1RSSU5HX1NFUlZJQ0VfSU5DTFVERUQKKyNkZWZpbmUgTVlfU1RSSU5HX1NFUlZJ Q0VfSU5DTFVERUQKKworI2luY2x1ZGUgInNxbF9zdHJpbmcuaCIKKworU3RyaW5nIHRlbXBfc3Ry OworCisvKiBteXNxbF9zdHJpbmdfaXRyZXJhdG9yIHN0cnVjdHVyZSB0byBwcm92aWRlIHNlcnZp Y2UgdG8gcGx1Z2lucyAqLwordHlwZWRlZiBzdHJ1Y3Qgc3Rfc3RyaW5nX2l0ZXJhdG9yCit7Cisg IFN0cmluZyAqaXRlcmF0b3Jfc3RyOworICBjb25zdCBjaGFyICppdGVyYXRvcl9wdHI7CisgIGlu dCBjdHlwZTsKK30gc3RyaW5nX2l0ZXJhdG9yOworCisjZW5kaWYgLyogTVlfU1RSSU5HX1NFUlZJ Q0VfSU5DTFVERUQgKi8KCj09PSBtb2RpZmllZCBmaWxlICdzdXBwb3J0LWZpbGVzL0NNYWtlTGlz dHMudHh0JwotLS0gYS9zdXBwb3J0LWZpbGVzL0NNYWtlTGlzdHMudHh0CTIwMTItMDMtMjMgMTA6 MzI6MzMgKzAwMDAKKysrIGIvc3VwcG9ydC1maWxlcy9DTWFrZUxpc3RzLnR4dAkyMDEyLTA1LTIz IDA5OjU0OjQwICswMDAwCkBAIC0zMiw2ICszMiw4IEBAIEVMU0UoKQogICBTRVQoSE9TVE5BTUUg Imhvc3RuYW1lIikKIEVORElGKCkKIAorICBTRVQoZGljdGlvbmFyeSAiJHtDTUFLRV9JTlNUQUxM X1BSRUZJWH0vJHtJTlNUQUxMX1NIQVJFRElSfS9kaWN0aW9uYXJ5LnR4dCIgKQorCiAjIFhYWDog c2hvdWxkbid0IHdlIGp1c3QgaGF2ZSB2YXJpYWJsZXMgZm9yIGFsbCB0aGlzIHN0dWZmIGFuZCBj ZW50cmFsaXNlCiAjIFhYWDogdGhlaXIgY29uZmlndXJhdGlvbiBpbiBpbnN0YWxsX2xheW91dC5j bWFrZT8KIElGKFdJTjMyKQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N1cHBvcnQtZmlsZXMvbXktaHVn ZS5jbmYuc2gnCi0tLSBhL3N1cHBvcnQtZmlsZXMvbXktaHVnZS5jbmYuc2gJMjAxMC0xMS0xOSAx Mzo1NjowOCArMDAwMAorKysgYi9zdXBwb3J0LWZpbGVzL215LWh1Z2UuY25mLnNoCTIwMTItMDUt MjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTEyNyw2ICsxMjcsOSBAQCBzZXJ2ZXItaWQJPSAxCiAjaW5u b2RiX2ZsdXNoX2xvZ19hdF90cnhfY29tbWl0ID0gMQogI2lubm9kYl9sb2NrX3dhaXRfdGltZW91 dCA9IDUwCiAKKyMgZGljdGlvbmFyeSBmaWxlIGZvciB2YWxpZGF0ZV9wYXNzd29yZCBwbHVnaW4K K2xvb3NlLXZhbGlkYXRlX3Bhc3N3b3JkX2RpY3Rpb25hcnlfZmlsZSA9IEBkaWN0aW9uYXJ5QAor CiBbbXlzcWxkdW1wXQogcXVpY2sKIG1heF9hbGxvd2VkX3BhY2tldCA9IDE2TQoKPT09IG1vZGlm aWVkIGZpbGUgJ3N1cHBvcnQtZmlsZXMvbXktbGFyZ2UuY25mLnNoJwotLS0gYS9zdXBwb3J0LWZp bGVzL215LWxhcmdlLmNuZi5zaAkyMDEwLTExLTE5IDEzOjU2OjA4ICswMDAwCisrKyBiL3N1cHBv cnQtZmlsZXMvbXktbGFyZ2UuY25mLnNoCTIwMTItMDUtMjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTEy Nyw2ICsxMjcsOSBAQCBzZXJ2ZXItaWQJPSAxCiAjaW5ub2RiX2ZsdXNoX2xvZ19hdF90cnhfY29t bWl0ID0gMQogI2lubm9kYl9sb2NrX3dhaXRfdGltZW91dCA9IDUwCiAKKyMgZGljdGlvbmFyeSBm aWxlIGZvciB2YWxpZGF0ZV9wYXNzd29yZCBwbHVnaW4KK2xvb3NlLXZhbGlkYXRlX3Bhc3N3b3Jk X2RpY3Rpb25hcnlfZmlsZSA9IEBkaWN0aW9uYXJ5QAorCiBbbXlzcWxkdW1wXQogcXVpY2sKIG1h eF9hbGxvd2VkX3BhY2tldCA9IDE2TQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N1cHBvcnQtZmlsZXMv bXktbWVkaXVtLmNuZi5zaCcKLS0tIGEvc3VwcG9ydC1maWxlcy9teS1tZWRpdW0uY25mLnNoCTIw MTAtMTEtMTkgMTM6NTY6MDggKzAwMDAKKysrIGIvc3VwcG9ydC1maWxlcy9teS1tZWRpdW0uY25m LnNoCTIwMTItMDUtMjMgMDk6NTQ6NDAgKzAwMDAKQEAgLTEyNSw2ICsxMjUsOSBAQCBzZXJ2ZXIt aWQJPSAxCiAjaW5ub2RiX2ZsdXNoX2xvZ19hdF90cnhfY29tbWl0ID0gMQogI2lubm9kYl9sb2Nr X3dhaXRfdGltZW91dCA9IDUwCiAKKyMgZGljdGlvbmFyeSBmaWxlIGZvciB2YWxpZGF0ZV9wYXNz d29yZCBwbHVnaW4KK2xvb3NlLXZhbGlkYXRlX3Bhc3N3b3JkX2RpY3Rpb25hcnlfZmlsZSA9IEBk aWN0aW9uYXJ5QAorCiBbbXlzcWxkdW1wXQogcXVpY2sKIG1heF9hbGxvd2VkX3BhY2tldCA9IDE2 TQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N1cHBvcnQtZmlsZXMvbXktc21hbGwuY25mLnNoJwotLS0g YS9zdXBwb3J0LWZpbGVzL215LXNtYWxsLmNuZi5zaAkyMDEwLTExLTE5IDEzOjU5OjQ1ICswMDAw CisrKyBiL3N1cHBvcnQtZmlsZXMvbXktc21hbGwuY25mLnNoCTIwMTItMDUtMjMgMDk6NTQ6NDAg KzAwMDAKQEAgLTcyLDYgKzcyLDkgQEAgc2VydmVyLWlkCT0gMQogI2lubm9kYl9mbHVzaF9sb2df YXRfdHJ4X2NvbW1pdCA9IDEKICNpbm5vZGJfbG9ja193YWl0X3RpbWVvdXQgPSA1MAogCisjIGRp Y3Rpb25hcnkgZmlsZSBmb3IgdmFsaWRhdGVfcGFzc3dvcmQgcGx1Z2luCitsb29zZS12YWxpZGF0 ZV9wYXNzd29yZF9kaWN0aW9uYXJ5X2ZpbGUgPSBAZGljdGlvbmFyeUAKKwogW215c3FsZHVtcF0K IHF1aWNrCiBtYXhfYWxsb3dlZF9wYWNrZXQgPSAxNk0KCk5vIGJ1bmRsZSAocmVhc29uOiB1c2Vs ZXNzIGZvciBwdXNoIGVtYWlscyku